]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/ActivityPub/Queue.php
Merge branch 'post-reason' of github.com:annando/friendica into post-reason
[friendica.git] / src / Protocol / ActivityPub / Queue.php
index d47007eb13db42b97bd43e47354e7e96668fda16..95a4cfa0d4557ecd5a34e33ef8ae5d413ac751dc 100644 (file)
@@ -25,7 +25,6 @@ use Friendica\Core\Logger;
 use Friendica\Database\Database;
 use Friendica\Database\DBA;
 use Friendica\DI;
-use Friendica\Protocol\ActivityPub;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\JsonLD;
 
@@ -127,11 +126,6 @@ class Queue
                        return;
                }
 
-               $children = DBA::select('inbox-entry', ['id'], ['in-reply-to-id' => $entry['object-id']]);
-               while ($child = DBA::fetch($children)) {
-                       self::deleteById($child['id']);
-               }
-               DBA::close($children);
                DBA::delete('inbox-entry', ['id' => $entry['id']]);
        }
 
@@ -168,13 +162,14 @@ class Queue
         * Process the activity with the given id
         *
         * @param integer $id
-        * @return void
+        *
+        * @return bool
         */
-       public static function process(int $id)
+       public static function process(int $id): bool
        {
                $entry = DBA::selectFirst('inbox-entry', [], ['id' => $id]);
                if (empty($entry)) {
-                       return;
+                       return false;
                }
 
                Logger::debug('Processing queue entry', ['id' => $entry['id'], 'type' => $entry['type'], 'object-type' => $entry['object-type'], 'uri' => $entry['object-id'], 'in-reply-to' => $entry['in-reply-to-id']]);
@@ -198,6 +193,8 @@ class Queue
                if (!Receiver::routeActivities($activity, $type, $push)) {
                        self::remove($activity);
                }
+
+               return true;
        }
 
        /**
@@ -242,15 +239,30 @@ class Queue
         * Process all activities that are children of a given post url
         *
         * @param string $uri
-        * @return void
+        * @return int
         */
-       public static function processReplyByUri(string $uri)
+       public static function processReplyByUri(string $uri): int
        {
+               $count = 0;
                $entries = DBA::select('inbox-entry', ['id'], ["`in-reply-to-id` = ? AND `object-id` != ?", $uri, $uri]);
                while ($entry = DBA::fetch($entries)) {
+                       $count += 1;
                        self::process($entry['id']);
                }
                DBA::close($entries);
+               return $count;
+       }
+
+       /**
+        * Checks if there are children of the given uri
+        *
+        * @param string $uri
+        *
+        * @return bool
+        */
+       public static function hasChildren(string $uri): bool
+       {
+               return DBA::exists('inbox-entry', ["`in-reply-to-id` = ? AND `object-id` != ?", $uri, $uri]);
        }
 
        /**