]> git.mxchange.org Git - friendica.git/commitdiff
Only process entries for existing posts
authorMichael <heluecht@pirati.ca>
Wed, 3 Aug 2022 05:14:07 +0000 (05:14 +0000)
committerMichael <heluecht@pirati.ca>
Wed, 3 Aug 2022 05:14:07 +0000 (05:14 +0000)
src/Protocol/ActivityPub/Processor.php
src/Protocol/ActivityPub/Queue.php

index 73f414d73c40a82ef01ff508af291a4f48be57e7..d58628ff2a190336aa8183a85aea2a364cba6000 100644 (file)
@@ -1050,7 +1050,7 @@ class Processor
 
                Queue::remove($activity);
 
-               if ($success && Queue::hasChildren($item['uri'])) {
+               if ($success && Queue::hasChildren($item['uri']) && Post::exists(['uri' => $item['uri']])) {
                        Queue::processReplyByUri($item['uri']);
                }
 
index 98c3b4d497e9c9206ef79e5a82b474514cd186ab..2fa95897c67f6cd0aeba351a06487d42c5cb9de0 100644 (file)
@@ -25,6 +25,7 @@ use Friendica\Core\Logger;
 use Friendica\Database\Database;
 use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Model\Post;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\JsonLD;
 
@@ -232,6 +233,10 @@ class Queue
        {
                $entries = DBA::select('inbox-entry', ['id', 'type', 'object-type', 'object-id', 'in-reply-to-id'], ["`trust` AND `wid` IS NULL"], ['order' => ['id' => true]]);
                while ($entry = DBA::fetch($entries)) {
+                       // Don't process entries of items that are answer to non existing posts
+                       if (!empty($entry['in-reply-to-id']) && !Post::exists(['uri' => $entry['in-reply-to-id']])) {
+                               continue;
+                       }
                        // We don't need to process entries that depend on already existing entries.
                        if (!empty($entry['in-reply-to-id']) && DBA::exists('inbox-entry', ["`id` != ? AND `object-id` = ?", $entry['id'], $entry['in-reply-to-id']])) {
                                continue;