]> git.mxchange.org Git - friendica.git/commitdiff
Transmit reshares and announce natively via Diaspora and AP whenever possible
authorMichael <heluecht@pirati.ca>
Sun, 8 Dec 2019 08:59:21 +0000 (08:59 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 8 Dec 2019 08:59:21 +0000 (08:59 +0000)
src/Worker/Delivery.php

index e59ea37aad35a4d0bd7c678de53e512c0c327677..cc06f17923270a259e3a79d25b8e3929642d0a80 100644 (file)
@@ -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) {