<?php
/**
- * @copyright Copyright (C) 2010-2023, the Friendica project
+ * @copyright Copyright (C) 2010-2024, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\Core\Worker;
use Friendica\Database\Database;
use Friendica\Database\DBA;
-use Friendica\Database\DBStructure;
use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\Item;
use Friendica\Model\Post;
use Friendica\Model\Profile;
use Friendica\Model\User;
+use Friendica\Protocol\Activity;
use Friendica\Protocol\Delivery;
use Friendica\Security\PermissionSet\Repository\PermissionSet;
+use Friendica\Util\DateTimeFormat;
// Post-update script of PR 5751
function update_1298()
$a = new \stdClass();
$a->strings = [];
- // First we get the the localizations
+ // First we get the localizations
if (file_exists('view/lang/$lang/strings.php')) {
include 'view/lang/$lang/strings.php';
}
return Update::SUCCESS;
}
-
-function pre_update_1354()
-{
- if (DBStructure::existsColumn('contact', ['ffi_keyword_blacklist'])
- && !DBStructure::existsColumn('contact', ['ffi_keyword_denylist'])
- && !DBA::e("ALTER TABLE `contact` CHANGE `ffi_keyword_blacklist` `ffi_keyword_denylist` text null")) {
- return Update::FAILED;
- }
- return Update::SUCCESS;
-}
-
-function update_1354()
-{
- if (DBStructure::existsColumn('contact', ['ffi_keyword_blacklist'])
- && DBStructure::existsColumn('contact', ['ffi_keyword_denylist'])) {
- if (!DBA::e("UPDATE `contact` SET `ffi_keyword_denylist` = `ffi_keyword_blacklist`")) {
- return Update::FAILED;
- }
-
- // When the data had been copied then the main task is done.
- // Having the old field removed is only beauty but not crucial.
- // So we don't care if this was successful or not.
- DBA::e("ALTER TABLE `contact` DROP `ffi_keyword_blacklist`");
- }
- return Update::SUCCESS;
-}
-
function update_1357()
{
if (!DBA::e("UPDATE `contact` SET `failed` = true WHERE `success_update` < `failure_update` AND `failed` IS NULL")) {
function update_1515()
{
- DI::config()
- ->beginTransaction()
- ->delete('config', 'hostname')
- ->delete('system', 'urlpath')
- ->delete('system', 'ssl_policy')
- ->commit();
+ DBA::update('verb', ['name' => Activity::READ], ['name' => 'https://www.w3.org/ns/activitystreams#read']);
+ DBA::update('verb', ['name' => Activity::VIEW], ['name' => 'https://joinpeertube.org/view']);
+ return Update::SUCCESS;
+}
+
+function update_1516()
+{
+ // Fixes https://github.com/friendica/friendica/issues/12803
+ // de-serialize multiple serialized values
+ $configTrans = DI::config()->beginTransaction();
+ $configArray = DI::config()->getCache()->getDataBySource(Cache::SOURCE_DATA);
+
+ foreach ($configArray as $category => $keyValues) {
+ if (is_array($keyValues)) {
+ foreach ($keyValues as $key => $value) {
+ $configTrans->set($category, $key, $value);
+ }
+ }
+ }
+
+ $configTrans->commit();
+
+ return Update::SUCCESS;
+}
+
+function update_1518()
+{
+ $users = DBA::select('user', ['uid']);
+ while ($user = DBA::fetch($users)) {
+ Contact::updateSelfFromUserID($user['uid']);
+ }
+ DBA::close($users);
+
+ return Update::SUCCESS;
+}
+
+function update_1520(): int
+{
+ DBA::update('user', ['parent-uid' => null], ['parent-uid' => 0]);
return Update::SUCCESS;
}
+
+/**
+ * user-contact.remote_self was wrongly declared as boolean, possibly truncating integer values from contact.remote_self
+ *
+ * @return int
+ * @throws Exception
+ */
+function update_1524(): int
+{
+ $contacts = DBA::select('contact', ['uid', 'uri-id', 'remote_self'], ["`uid` != ?", 0]);
+ while ($contact = DBA::fetch($contacts)) {
+ Contact\User::insertForContactArray($contact);
+ }
+
+ return Update::SUCCESS;
+}
+
+function update_1525(): int
+{
+ // Use expected value for user.username
+ if (!DBA::e('UPDATE `user` u
+ JOIN `profile` p
+ ON p.`uid` = u.`uid`
+ SET u.`username` = p.`name`
+ WHERE p.`name` != ""')) {
+ return Update::FAILED;
+ }
+
+ // Blank out deprecated field profile.name to avoid future confusion
+ if (!DBA::e('UPDATE `profile` p
+ SET p.`name` = ""')) {
+ return Update::FAILED;
+ }
+
+ // Update users' self-contact name if needed
+ if (!DBA::e('UPDATE `contact` c
+ JOIN `user` u
+ ON u.`uid` = c.`uid` AND c.`self` = 1
+ SET c.`name` = u.`username`')) {
+ return Update::FAILED;
+ }
+
+ return Update::SUCCESS;
+}
+
+function update_1531()
+{
+ $threads = Post::selectThread(Item::DELIVER_FIELDLIST, ["`uid` = ? AND `created` > ?", 0, DateTimeFormat::utc('now - ' . DI::config()->get('channel', 'engagement_hours') . ' hour')]);
+ while ($post = Post::fetch($threads)) {
+ $post['gravity'] = Item::GRAVITY_COMMENT;
+ Post\Engagement::storeFromItem($post);
+ }
+ DBA::close($threads);
+
+ return Update::SUCCESS;
+}
+
+function update_1535()
+{
+ if (DI::config()->get('system', 'compute_group_counts')) {
+ DI::config()->set('system', 'compute_circle_counts', true);
+ }
+ DI::config()->delete('system', 'compute_group_counts');
+
+ return Update::SUCCESS;
+}
+
+function update_1539()
+{
+ $users = DBA::select('user', ['uid'], ['account-type' => User::ACCOUNT_TYPE_COMMUNITY]);
+ while ($user = DBA::fetch($users)) {
+ User::setCommunityUserSettings($user['uid']);
+ }
+ DBA::close($users);
+
+ return Update::SUCCESS;
+}
\ No newline at end of file