]> git.mxchange.org Git - friendica.git/blobdiff - update.php
Remove another URL check at App
[friendica.git] / update.php
index fb62f28df46191053eac105f31a815750398cb0b..8f937752599535f34bd58d941ca5e2c4a231a751 100644 (file)
@@ -1,6 +1,6 @@
 <?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
  *
@@ -59,8 +59,8 @@ use Friendica\Model\Photo;
 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()
@@ -1148,11 +1148,99 @@ function update_1502()
 
 function update_1505()
 {
-       $postUpdateEntries = DBA::selectToArray('config', ['k', 'v'], ["`k` LIKE ?", "post_update_%"]);
+       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) {
-               DI::keyValue()->set($postUpdateEntry['k'], $postUpdateEntry['v']);
+               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', ["`k` LIKE ?", "post_update_%"]) ? Update::SUCCESS : Update::FAILED;
+       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');
 }