<?php
/**
- * @copyright Copyright (C) 2010-2022, the Friendica project
+ * @copyright Copyright (C) 2010-2023, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
use Friendica\Core\Logger;
use Friendica\Core\Worker;
use Friendica\Model\Post;
+use Friendica\Model\User;
use Friendica\Protocol\ActivityPub;
class APDelivery
{
if (empty($uri_id)) {
$result = ActivityPub\Delivery::deliver($inbox);
$success = $result['success'];
+ $drop = false;
$uri_ids = $result['uri_ids'];
} else {
- $result = ActivityPub\Delivery::deliverToInbox($cmd, $item_id, $inbox, $uid, $receivers, $uri_id);
+ $owner = User::getOwnerDataById($uid);
+ if (!$owner) {
+ Post\Delivery::remove($uri_id, $inbox);
+ Post\Delivery::incrementFailed($uri_id, $inbox);
+ return;
+ }
+
+ $result = ActivityPub\Delivery::deliverToInbox($cmd, $item_id, $inbox, $owner, $receivers, $uri_id);
$success = $result['success'];
+ $drop = $result['drop'];
$uri_ids = [$uri_id];
}
- if (!$success && !Worker::defer() && !empty($uri_ids)) {
+ if (!$drop && !$success && !Worker::defer() && !empty($uri_ids)) {
foreach ($uri_ids as $uri_id) {
Post\Delivery::remove($uri_id, $inbox);
Post\DeliveryData::incrementQueueFailed($uri_id);