]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/ExpirePosts.php
Detection of local requests
[friendica.git] / src / Worker / ExpirePosts.php
index d51e956a5656a68766a2c5849c06e43e4ff1243a..de650f667d93156b332c56c3048e0b24e45c22fe 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -47,7 +47,9 @@ class ExpirePosts
 
                self::deleteExpiredExternalPosts();
 
-               self::addMissingEntries();
+               if (DI::config()->get('system', 'add_missing_posts')) {
+                       self::addMissingEntries();
+               }
 
                // Set the expiry for origin posta
                Worker::add(PRIORITY_LOW, 'Expire');
@@ -117,7 +119,7 @@ class ExpirePosts
                Logger::notice('Adding missing entries');
 
                $rows = 0;
-               $userposts = DBA::select('post-user', [], ["`uri-id` not in (select `uri-id` from `post`)"], ['group_by' => ['uri-id']]);
+               $userposts = DBA::select('post-user', [], ["`uri-id` not in (select `uri-id` from `post`)"]);
                while ($fields = DBA::fetch($userposts)) {
                        $post_fields = DBStructure::getFieldsForTable('post', $fields);
                        DBA::insert('post', $post_fields, Database::INSERT_IGNORE);
@@ -131,7 +133,7 @@ class ExpirePosts
                }
 
                $rows = 0;
-               $userposts = DBA::select('post-user', [], ["`gravity` = ? AND `uri-id` not in (select `uri-id` from `post-thread`)", GRAVITY_PARENT], ['group_by' => ['uri-id']]);
+               $userposts = DBA::select('post-user', [], ["`gravity` = ? AND `uri-id` not in (select `uri-id` from `post-thread`)", GRAVITY_PARENT]);
                while ($fields = DBA::fetch($userposts)) {
                        $post_fields = DBStructure::getFieldsForTable('post-thread', $fields);
                        $post_fields['commented'] = $post_fields['changed'] = $post_fields['created'];
@@ -176,10 +178,17 @@ class ExpirePosts
                }
                Logger::notice('Start collecting orphaned URI-ID', ['last-id' => $item['uri-id']]);
                $uris = DBA::select('item-uri', ['id'], ["`id` < ?
-                       AND NOT EXISTS(SELECT `uri-id` FROM `post` WHERE `uri-id` = `item-uri`.`id`)
-                       AND NOT EXISTS(SELECT `parent-uri-id` FROM `post` WHERE `parent-uri-id` = `item-uri`.`id`)
-                       AND NOT EXISTS(SELECT `thr-parent-id` FROM `post` WHERE `thr-parent-id` = `item-uri`.`id`)
-                       AND NOT EXISTS(SELECT `external-id` FROM `post` WHERE `external-id` = `item-uri`.`id`)", $item['uri-id']]);
+                       AND NOT EXISTS(SELECT `uri-id` FROM `post-user` WHERE `uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `parent-uri-id` FROM `post-user` WHERE `parent-uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `thr-parent-id` FROM `post-user` WHERE `thr-parent-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `external-id` FROM `post-user` WHERE `external-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `uri-id` FROM `mail` WHERE `uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `uri-id` FROM `event` WHERE `uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `uri-id` FROM `contact` WHERE `uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `uri-id` FROM `apcontact` WHERE `uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `uri-id` FROM `fcontact` WHERE `uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `parent-uri-id` FROM `mail` WHERE `parent-uri-id` = `item-uri`.`id`)
+                       AND NOT EXISTS(SELECT `thr-parent-id` FROM `mail` WHERE `thr-parent-id` = `item-uri`.`id`)", $item['uri-id']]);
 
                Logger::notice('Start deleting orphaned URI-ID', ['last-id' => $item['uri-id']]);
                $affected_count = 0;