]> git.mxchange.org Git - friendica.git/commitdiff
Show if a post arrived via relay
authorMichael <heluecht@pirati.ca>
Mon, 21 Sep 2020 12:31:20 +0000 (12:31 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 21 Sep 2020 12:31:20 +0000 (12:31 +0000)
include/conversation.php
src/Model/Item.php
src/Protocol/ActivityPub/Processor.php
src/Protocol/ActivityPub/Receiver.php
view/theme/frio/templates/sub/direction.tpl
view/theme/vier/templates/sub/direction.tpl

index ed9086307b4b4cb9f604f8452e17a55e070f1189..4b3c4f0de42177c76b0c67076610f2663fcdb6f1 100644 (file)
@@ -764,10 +764,9 @@ function conversation_fetch_comments($thread_items, $pinned) {
                        case Item::PT_GLOBAL:
                                $row['direction'] = ['direction' => 9, 'title' => DI::l10n()->t('Global')];
                                break;
-                       default:
-                               if ($row['uid'] == 0) {
-                                       $row['direction'] = ['direction' => 9, 'title' => DI::l10n()->t('Global')];
-                               }
+                       case Item::PT_RELAY:
+                               $row['direction'] = ['direction' => 10, 'title' => DI::l10n()->t('Relay')];
+                               break;
                }
 
                if (($row['gravity'] == GRAVITY_PARENT) && !$row['origin'] && ($row['author-id'] == $row['owner-id']) &&
index 5a0a0a92a4a1e70956c1154eca04d9de6284d2cf..514fd417255fc4aa911320fdd08d824ddcb356a8 100644 (file)
@@ -67,6 +67,7 @@ class Item
        const PT_COMMENT = 71;
        const PT_STORED = 72;
        const PT_GLOBAL = 73;
+       const PT_RELAY = 74;
        const PT_PERSONAL_NOTE = 128;
 
        // Field list that is used to display the items
index 2c99132c2004bbfb0a3f90328f3a30623c905fe3..54d61bd6eeae4ca0d3da8f2d8b77802ceab1a17a 100644 (file)
@@ -521,6 +521,10 @@ class Processor
                                        $item['post-type'] = Item::PT_ARTICLE;
                        }
 
+                       if (in_array($item['post-type'], [Item::PT_GLOBAL, Item::PT_ARTICLE]) && !empty($activity['from-relay'])) {
+                               $item['post-type'] = Item::PT_RELAY;
+                       }
+
                        if ($item['isForum'] ?? false) {
                                $item['contact-id'] = Contact::getIdForURL($activity['actor'], $receiver);
                        } else {
@@ -688,12 +692,13 @@ class Processor
        /**
         * Fetches missing posts
         *
-        * @param string $url message URL
-        * @param array $child activity array with the child of this message
+        * @param string $url       message URL
+        * @param array  $child     activity array with the child of this message
+        * @param bool   $relaymode Posts arrived via relay
         * @return string fetched message URL
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function fetchMissingActivity(string $url, array $child = [])
+       public static function fetchMissingActivity(string $url, array $child = [], bool $relaymode = false)
        {
                if (!empty($child['receiver'])) {
                        $uid = ActivityPub\Receiver::getFirstUserFromReceivers($child['receiver']);
@@ -752,6 +757,7 @@ class Processor
                $ldactivity = JsonLD::compact($activity);
 
                $ldactivity['thread-completion'] = true;
+               $ldactivity['from-relay'] = $relaymode;
 
                ActivityPub\Receiver::processActivity($ldactivity, json_encode($activity), $uid, true, false, $signer);
 
index 6910ee11c227d175ad3eae2324a0ac097805f22e..f3cf87c858c642832504af7fb5de61feba058cd4 100644 (file)
@@ -180,7 +180,7 @@ class Receiver
                        return;
                }
 
-               Processor::fetchMissingActivity($object_id);
+               Processor::fetchMissingActivity($object_id, [], true);
 
                $item_id = Item::searchByLink($object_id);
                if ($item_id) {
@@ -468,6 +468,11 @@ class Receiver
                        $object_data['thread-completion'] = $activity['thread-completion'];
                }
 
+               // Internal flag for posts that arrived via relay
+               if (!empty($activity['from-relay'])) {
+                       $object_data['from-relay'] = $activity['from-relay'];
+               }
+               
                switch ($type) {
                        case 'as:Create':
                                if (in_array($object_data['object_type'], self::CONTENT_TYPES)) {
index 50c7d5b8d44eb165da1e6ddd955c40f665fb20f6..7659f6b839b8e843d3e7bd0fc3e1acf18965394f 100644 (file)
@@ -19,6 +19,8 @@
                <i class="fa fa-share" aria-hidden="true" title="{{$direction.title}}"></i>
        {{elseif $direction.direction == 9}}
                <i class="fa fa-globe" aria-hidden="true" title="{{$direction.title}}"></i>
+       {{elseif $direction.direction == 10}}
+               <i class="fa fa-inbox" aria-hidden="true" title="{{$direction.title}}"></i>
        {{/if}}
 </span>
 {{/if}}
index c4f959beb75a3845bd11ac1393e3c2a5aed874da..1d52e1198ff89ffe5340e1ba7ac56776841f96e2 100644 (file)
@@ -19,6 +19,8 @@
                <i class="icon-share" aria-hidden="true" title="{{$direction.title}}"></i>
        {{elseif $direction.direction == 9}}
                <i class="icon-globe" aria-hidden="true" title="{{$direction.title}}"></i>
+       {{elseif $direction.direction == 10}}
+               <i class="icon-inbox" aria-hidden="true" title="{{$direction.title}}"></i>
        {{/if}}
 </span>
 {{/if}}