]> git.mxchange.org Git - friendica.git/commitdiff
Distribute forum comments only via the forum
authorMichael <heluecht@pirati.ca>
Tue, 27 Dec 2022 16:14:04 +0000 (16:14 +0000)
committerHypolite Petovan <hypolite@mrpetovan.com>
Fri, 13 Jan 2023 14:16:31 +0000 (09:16 -0500)
src/Core/Protocol.php
src/Protocol/ActivityPub/Transmitter.php

index 25955abd5090d21d3387e75cc02d98d00bc20bf5..e4490da73265342405cd27f049a479e71439b33b 100644 (file)
@@ -52,7 +52,6 @@ class Protocol
 
        // Supported through a connector
        const DIASPORA2 = 'dspc';    // Diaspora connector
-       const LINKEDIN  = 'lnkd';    // LinkedIn
        const PUMPIO    = 'pump';    // pump.io
        const STATUSNET = 'stac';    // Statusnet connector
        const TWITTER   = 'twit';    // Twitter
@@ -66,6 +65,7 @@ class Protocol
        // Currently unsupported
        const ICALENDAR = 'ical';    // iCalendar
        const MYSPACE   = 'mysp';    // MySpace
+       const LINKEDIN  = 'lnkd';    // LinkedIn
        const NEWS      = 'nntp';    // Network News Transfer Protocol
        const PNUT      = 'pnut';    // pnut.io
        const XMPP      = 'xmpp';    // XMPP
index 0ea11c6ad18e05c0756a30305cb27775be9237b2..6b0064c3e914acf43416324b8320656562780829 100644 (file)
@@ -675,6 +675,19 @@ class Transmitter
 
                $exclusive = false;
 
+               if ($is_forum_thread) {
+                       foreach (Tag::getByURIId($item['parent-uri-id'], [Tag::MENTION, Tag::EXCLUSIVE_MENTION]) as $term) {
+                               $profile = APContact::getByURL($term['url'], false);
+                               if (!empty($profile) && ($profile['type'] == 'Group')) {
+                                       if ($term['type'] == Tag::EXCLUSIVE_MENTION) {
+                                               $exclusive = true;
+                                       } elseif ($term['type'] == Tag::MENTION) {
+                                               $exclusive = false;
+                                       }
+                               }
+                       }
+               }
+
                $terms = Tag::getByURIId($item['uri-id'], [Tag::MENTION, Tag::IMPLICIT_MENTION, Tag::EXCLUSIVE_MENTION]);
 
                if ($item['private'] != Item::PRIVATE) {
@@ -704,6 +717,8 @@ class Transmitter
                                                if (!empty($profile['followers']) && ($profile['type'] == 'Group')) {
                                                        $data['cc'][] = $profile['followers'];
                                                }
+                                       } elseif (($term['type'] == Tag::MENTION) && ($profile['type'] == 'Group')) {
+                                               $exclusive = false;
                                        }
                                        $data['to'][] = $profile['url'];
                                }
@@ -726,6 +741,8 @@ class Transmitter
                                                        if (!empty($profile['followers']) && ($profile['type'] == 'Group')) {
                                                                $data['cc'][] = $profile['followers'];
                                                        }
+                                               } elseif (($term['type'] == Tag::MENTION) && ($profile['type'] == 'Group')) {
+                                                       $exclusive = false;
                                                }
                                                $data['to'][] = $profile['url'];
                                        }