<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\Model\Post;
use Friendica\Model\Profile;
use Friendica\Model\User;
+use Friendica\Protocol\Delivery;
use Friendica\Security\PermissionSet\Repository\PermissionSet;
-use Friendica\Worker\Delivery;
// Post-update script of PR 5751
function update_1298()
return Update::FAILED;
}
- if (!DBA::e("UPDATE `fcontact` SET `uri-id` = null WHERE NOT `uri-id` IS NULL")) {
+ if (DBStructure::existsTable('fcontact') && !DBA::e("UPDATE `fcontact` SET `uri-id` = null WHERE NOT `uri-id` IS NULL")) {
return Update::FAILED;
}
return Update::FAILED;
}
- DI::config()->set('system', 'post_update_version', 1423);
+ DI::keyValue()->set('post_update_version', 1423);
return Update::SUCCESS;
}
function update_1439()
{
+ if (!DBStructure::existsTable('fcontact')) {
+ return Update::SUCCESS;
+ }
+
$intros = DBA::select('intro', ['id', 'fid'], ["NOT `fid` IS NULL AND `fid` != ?", 0]);
while ($intro = DBA::fetch($intros)) {
$fcontact = DBA::selectFirst('fcontact', ['url'], ['id' => $intro['fid']]);
}
}
DBA::close($intros);
+
+ return Update::SUCCESS;
}
function update_1440()
{
DBA::e("UPDATE `user` SET `last-activity` = DATE(`login_date`) WHERE `last-activity` IS NULL");
return Update::SUCCESS;
-}
\ No newline at end of file
+}
+
+function update_1502()
+{
+ DBA::e("UPDATE `pconfig` SET `cat` = 'calendar' WHERE `k` = 'first_day_of_week'");
+ return Update::SUCCESS;
+}
+
+function update_1505()
+{
+ if (!DBStructure::existsTable('config')) {
+ return Update::SUCCESS;
+ }
+
+ $conditions = [
+ "((`cat` = ?) AND ((`k` LIKE ?) OR (`k` = ?) OR (`k` LIKE ?) OR (`k` = ?))) OR " .
+ "((`cat` != ?) AND (`k` LIKE ?)) OR " .
+ "((`cat` = ?) AND (`k` LIKE ?))",
+ "system",
+ "post_update_%",
+ "worker_last_cleaned",
+ "last%",
+ "worker_daemon_mode",
+ "system",
+ "last_%",
+ "database",
+ "update_%",
+ ];
+
+ $postUpdateEntries = DBA::selectToArray('config', ['cat', 'k', 'v'], $conditions);
+
+ foreach ($postUpdateEntries as $postUpdateEntry) {
+ if ($postUpdateEntry['cat'] === 'system') {
+ DI::keyValue()->set($postUpdateEntry['k'], $postUpdateEntry['v']);
+ } else {
+ DI::keyValue()->set(sprintf('%s_%s', $postUpdateEntry['cat'], $postUpdateEntry['k']), $postUpdateEntry['v']);
+ }
+ }
+
+ return DBA::delete('config', $conditions) ? Update::SUCCESS : Update::FAILED;
+}
+
+function update_1508()
+{
+ $config = DBA::selectToArray('config');
+
+ $newConfig = DI::config()->beginTransaction();
+
+ foreach ($config as $entry) {
+ $newConfig->set($entry['cat'], $entry['k'], $entry['v']);
+ }
+
+ $newConfig->commit();
+
+ return Update::SUCCESS;
+}
+
+function update_1509()
+{
+ $addons = DBA::selectToArray('addon');
+
+ $newConfig = DI::config()->beginTransaction();
+
+ foreach ($addons as $addon) {
+ $newConfig->set('addons', $addon['name'], [
+ 'last_update' => $addon['timestamp'],
+ 'admin' => (bool)$addon['plugin_admin'],
+ ]);
+ }
+
+ $newConfig->commit();
+
+ return Update::SUCCESS;
+}
+
+function update_1510()
+{
+ $blocks = DBA::select('pconfig', ['uid', 'v'], ['cat' => 'blockem', 'k' => 'words']);
+ while ($block = DBA::fetch($blocks)) {
+ foreach (explode(',', $block['v']) as $account) {
+ $id = Contact::getIdForURL(trim($account), 0, false);
+ if (empty($id)) {
+ continue;
+ }
+ Contact\User::setCollapsed($id, $block['uid'], true);
+ }
+ }
+ return Update::SUCCESS;
+}
+
+function update_1512()
+{
+ DI::keyValue()->set('nodeinfo_total_users', DI::config()->get('nodeinfo', 'total_users'));
+ DI::keyValue()->set('nodeinfo_active_users_halfyear', DI::config()->get('nodeinfo', 'active_users_halfyear'));
+ DI::keyValue()->set('nodeinfo_active_users_monthly', DI::config()->get('nodeinfo', 'active_users_monthly'));
+ DI::keyValue()->set('nodeinfo_active_users_weekly', DI::config()->get('nodeinfo', 'active_users_weekly'));
+ DI::keyValue()->set('nodeinfo_local_posts', DI::config()->get('nodeinfo', 'local_posts'));
+ DI::keyValue()->set('nodeinfo_local_comments', DI::config()->get('nodeinfo', 'local_comments'));
+
+ DI::config()->delete('nodeinfo', 'total_users');
+ DI::config()->delete('nodeinfo', 'active_users_halfyear');
+ DI::config()->delete('nodeinfo', 'active_users_monthly');
+ DI::config()->delete('nodeinfo', 'active_users_weekly');
+ DI::config()->delete('nodeinfo', 'local_posts');
+ DI::config()->delete('nodeinfo', 'local_comments');
+}
+
+function update_1513()
+{
+ DI::keyValue()->set('git_friendica_version', DI::config()->get('system', 'git_friendica_version'));
+ DI::keyValue()->set('twitter_application_name', DI::config()->get('twitter', 'application_name'));
+
+ DI::config()->delete('system', 'git_friendica_version');
+ DI::config()->delete('twitter', 'application_name');
+}