]> git.mxchange.org Git - friendica.git/commitdiff
Transmit via the sharedInbox
authorMichael <heluecht@pirati.ca>
Mon, 2 May 2022 05:53:11 +0000 (05:53 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 2 May 2022 05:53:11 +0000 (05:53 +0000)
src/Worker/APDelivery.php

index 299eeba359f1d77de7b70b2465882824f1316ad8..6a1241293e2e359783321266d60caed9433850d5 100644 (file)
@@ -107,12 +107,18 @@ class APDelivery
        private static function deliverToInbox(string $cmd, int $item_id, string $inbox, int $uid, array $receivers, int $uri_id)
        {
                if (empty($item_id) && !empty($uri_id) && !empty($uid)) {
-                       $item = Post::selectFirst(['id', 'parent'], ['uri-id' => $uri_id, 'uid' => $uid]);
+                       $item = Post::selectFirst(['id', 'parent', 'origin'], ['uri-id' => $uri_id, 'uid' => $uid]);
                        $item_id = $item['id'] ?? 0;
                        if (empty($receivers) && !empty($item)) {
                                $parent = Post::selectFirst(Item::DELIVER_FIELDLIST, ['id' => $item['parent']]);
 
-                               $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid, true, $item['id']);
+                               if ($item['origin']) {
+                                       $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid);
+                               } else {
+                                       // Remote items are transmitted via the personal inboxes.
+                                       // Doing so ensures that the dedicated receiver will get the message.
+                                       $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid, true, $item_id);
+                               }
 
                                $receivers = $inboxes[$inbox] ?? [];
                        }