+ /**
+ * @param string $cmd
+ * @param array $target_item
+ * @param array $parent
+ * @param int $priority The priority the Notifier queue item was created with
+ * @param string $created The date the Notifier queue item was created on
+ * @return int The number of delivery tasks created
+ * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+ * @throws \ImagickException
+ */
+ private static function activityPubDelivery($cmd, array $target_item, array $parent, $priority, $created)
+ {
+ $inboxes = [];
+
+ $uid = $target_item['contact-uid'] ?: $target_item['uid'];
+
+ if ($target_item['origin']) {
+ $inboxes = ActivityPub\Transmitter::fetchTargetInboxes($target_item, $uid);
+ Logger::log('Origin item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.', Logger::DEBUG);
+ } elseif (!DBA::exists('conversation', ['item-uri' => $target_item['uri'], 'protocol' => Conversation::PARCEL_ACTIVITYPUB])) {
+ Logger::log('Remote item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' is no AP post. It will not be distributed.', Logger::DEBUG);
+ return 0;
+ } elseif ($parent['origin']) {
+ // 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, $target_item['id']);
+ Logger::log('Remote item ' . $target_item['id'] . ' with URL ' . $target_item['uri'] . ' will be distributed.', Logger::DEBUG);
+ }