]> git.mxchange.org Git - friendica.git/commitdiff
Remove all posts of a given inbox
authorMichael <heluecht@pirati.ca>
Fri, 13 May 2022 02:18:46 +0000 (02:18 +0000)
committerMichael <heluecht@pirati.ca>
Fri, 13 May 2022 02:18:46 +0000 (02:18 +0000)
src/Worker/APDelivery.php

index 1ec0ba47cee87c27bc94d5fa1a333b0cc09a3c74..3fb389313ff1d88c40b9d5539c507278f13929f0 100644 (file)
@@ -49,12 +49,21 @@ class APDelivery
                if (ActivityPub\Transmitter::archivedInbox($inbox)) {
                        Logger::info('Inbox is archived', ['cmd' => $cmd, 'inbox' => $inbox, 'id' => $item_id, 'uri-id' => $uri_id, 'uid' => $uid]);
                        if (in_array($cmd, [Delivery::POST])) {
-                               if (empty($uri_id)) {
+                               if (empty($uri_id) && !empty($item_id)) {
                                        $item = Post::selectFirst(['uri-id'], ['id' => $item_id]);
                                        $uri_id = $item['uri-id'] ?? 0;
                                }
-                               Post\Delivery::remove($uri_id, $inbox);
-                               Post\DeliveryData::incrementQueueFailed($uri_id);
+                               if (empty($uri_id)) {
+                                       $posts   = Post\Delivery::selectForInbox($inbox);
+                                       $uri_ids = array_column($posts, 'uri-id');
+                               } else {
+                                       $uri_ids = [$uri_id];
+                               }
+               
+                               foreach ($uri_ids as $uri_id) {
+                                       Post\Delivery::remove($uri_id, $inbox);
+                                       Post\DeliveryData::incrementQueueFailed($uri_id);
+                               }
                        }
                        return;
                }