diff --git a/src/Worker/Delivery.php b/src/Worker/Delivery.php index e59ea37aad..cc06f17923 100644 --- a/src/Worker/Delivery.php +++ b/src/Worker/Delivery.php @@ -251,17 +251,19 @@ class Delivery extends BaseObject */ private static function deliverDFRN($cmd, $contact, $owner, $items, $target_item, $public_message, $top_level, $followup) { -/* - if (Diaspora::isReshare($target_item['body'])) { - // Transmit Diaspora reshares only via Diaspora + // Transmit Diaspora reshares via Diaspora if the Friendica contact support Diaspora + if (Diaspora::isReshare($target_item['body']) && !empty(Diaspora::personByHandle(contact['addr'], false))) { + Logger::info('Reshare will be transmitted via Diaspora', ['url' => $contact['url'], 'guid' => ($target_item['guid'] ?? '') ?: $target_item['id']]); self::deliverDiaspora($cmd, $contact, $owner, $items, $target_item, $public_message, $top_level, $followup); return; } - if (ActivityPub\Transmitter::::isAnnounce($target_item) && getby) { + // Skip transmitting the announce via DFRN when it had already been done via AP + if (ActivityPub\Transmitter::isAnnounce($target_item) && !empty(Model\APContact::getByURL($contact['url'], false))) { + Logger::info('Announce had already been transmitted', ['url' => $contact['url'], 'guid' => ($target_item['guid'] ?? '') ?: $target_item['id']]); return; } -*/ + Logger::info('Deliver ' . (($target_item['guid'] ?? '') ?: $target_item['id']) . ' via DFRN to ' . (($contact['addr'] ?? '') ?: $contact['url'])); if ($cmd == self::MAIL) {