}
if (!$success && !Worker::defer() && in_array($cmd, [Delivery::POST])) {
- if ($uri_id) {
+ if (!empty($uri_id)) {
Post\Delivery::remove($uri_id, $inbox);
Post\DeliveryData::incrementQueueFailed($uri_id);
} elseif (!empty($uri_ids)) {
}
}
} elseif ($success && in_array($cmd, [Delivery::POST])) {
- if ($uri_id) {
+ if (!empty($uri_id)) {
Post\DeliveryData::incrementQueueDone($uri_id, Post\DeliveryData::ACTIVITYPUB);
} elseif (!empty($uri_ids)) {
foreach ($uri_ids as $uri_id) {
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']);
-
+ $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid);
$receivers = $inboxes[$inbox] ?? [];
+
+ // When we haven't fetched the receiver list, it can be a personal inbox
+ if (empty($receivers)) {
+ $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($parent, $uid, true);
+ $receivers = $inboxes[$inbox] ?? [];
+ }
}
}