]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/ExpirePosts.php
Merge remote-tracking branch 'upstream/develop' into user-contact
[friendica.git] / src / Worker / ExpirePosts.php
index cff6e2b120c505bd32ae4fce4c73a9d3f67849d2..8d7b8c6eeaea645988048a255e55d99f453dc90f 100644 (file)
@@ -119,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);
@@ -133,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'];
@@ -170,7 +170,7 @@ class ExpirePosts
        {
                // We have to avoid deleting newly created "item-uri" entries.
                // So we fetch a post that had been stored yesterday and only delete older ones.
-               $item = Post::selectFirst(['uri-id'], ["`uid` = ? AND `received` < UTC_TIMESTAMP() - INTERVAL ? DAY", 0, 1],
+               $item = Post::selectFirstThread(['uri-id'], ["`uid` = ? AND `received` < UTC_TIMESTAMP() - INTERVAL ? DAY", 0, 1],
                        ['order' => ['received' => true]]);
                if (empty($item['uri-id'])) {
                        Logger::warning('No item with uri-id found - we better quit here');
@@ -181,7 +181,15 @@ class ExpirePosts
                        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`)", $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 `user-contact` 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;
@@ -224,10 +232,10 @@ class ExpirePosts
                                        AND NOT `uri-id` IN (SELECT `parent-uri-id` FROM `post-user` INNER JOIN `contact` ON `contact`.`id` = `contact-id` AND `notify_new_posts`
                                                WHERE `parent-uri-id` = `post-thread`.`uri-id`)
                                        AND NOT `uri-id` IN (SELECT `parent-uri-id` FROM `post-user`
-                                               WHERE (`origin` OR `event-id` != 0 OR `post-type` IN (?, ?)) AND `parent-uri-id` = `post-thread`.`uri-id`)
+                                               WHERE (`origin` OR `event-id` != 0 OR `post-type` = ?) AND `parent-uri-id` = `post-thread`.`uri-id`)
                                        AND NOT `uri-id` IN (SELECT `uri-id` FROM `post-content`
                                                WHERE `resource-id` != 0 AND `uri-id` = `post-thread`.`uri-id`))",
-                               $expire_days, Item::PT_PERSONAL_NOTE, Item::PT_IMAGE]);
+                               $expire_days, Item::PT_PERSONAL_NOTE]);
 
                        Logger::notice('Start deleting expired threads');
                        $affected_count = 0;