]> git.mxchange.org Git - friendica.git/commitdiff
Fix: Posts sent to forums had been rejected
authorMichael <heluecht@pirati.ca>
Wed, 4 Nov 2020 08:57:21 +0000 (08:57 +0000)
committerMichael <heluecht@pirati.ca>
Wed, 4 Nov 2020 08:57:21 +0000 (08:57 +0000)
src/Protocol/ActivityPub/Transmitter.php
src/Protocol/DFRN.php

index 54df8e059e07592d87ebba648f5c18326111457c..0044b5240b194049e0bdd2420486d90dd74cb8b3 100644 (file)
@@ -462,14 +462,12 @@ class Transmitter
                }
 
                $always_bcc = false;
-               $isforum = false;
 
                // Check if we should always deliver our stuff via BCC
                if (!empty($item['uid'])) {
                        $profile = User::getOwnerDataById($item['uid']);
                        if (!empty($profile)) {
                                $always_bcc = $profile['hide-friends'];
-                               $isforum = $profile['account-type'] == User::ACCOUNT_TYPE_COMMUNITY;
                        }
                }
 
@@ -477,7 +475,7 @@ class Transmitter
                        $always_bcc = true;
                }
 
-               if ((self::isAnnounce($item) && !$isforum) || DI::config()->get('debug', 'total_ap_delivery')) {
+               if (self::isAnnounce($item) || DI::config()->get('debug', 'total_ap_delivery')) {
                        // Will be activated in a later step
                        $networks = Protocol::FEDERATED;
                } else {
@@ -531,10 +529,6 @@ class Transmitter
                                                continue;
                                        }
 
-                                       if ($isforum && DBA::isResult($contact) && ($contact['dfrn'] == Protocol::DFRN)) {
-                                               continue;
-                                       }
-
                                        if (!empty($profile = APContact::getByURL($contact['url'], false))) {
                                                $data['to'][] = $profile['url'];
                                        }
@@ -547,10 +541,6 @@ class Transmitter
                                        continue;
                                }
 
-                               if ($isforum && DBA::isResult($contact) && ($contact['dfrn'] == Protocol::DFRN)) {
-                                       continue;
-                               }
-
                                if (!empty($profile = APContact::getByURL($contact['url'], false))) {
                                        if ($contact['hidden'] || $always_bcc) {
                                                $data['bcc'][] = $profile['url'];
index 2186081022f351ad95598c1a05826e0d99974b3b..b6f7f1cb2b0cdc670b615059a01b7ee541a5b669 100644 (file)
@@ -1500,15 +1500,20 @@ class DFRN
 
                $fields = ['id', 'uid', 'url', 'network', 'avatar-date', 'avatar', 'name-date', 'uri-date', 'addr',
                        'name', 'nick', 'about', 'location', 'keywords', 'xmpp', 'bdyear', 'bd', 'hidden', 'contact-type'];
-               $condition = ["`uid` = ? AND `nurl` = ? AND `network` != ? AND NOT `pending` AND NOT `blocked` AND `rel` IN (?, ?)",
-                       $importer["importer_uid"], Strings::normaliseLink($author["link"]), Protocol::STATUSNET,
-                       Contact::SHARING, Contact::FRIEND];
+               $condition = ["`uid` = ? AND `nurl` = ? AND `network` != ? AND NOT `pending` AND NOT `blocked`",
+                       $importer["importer_uid"], Strings::normaliseLink($author["link"]), Protocol::STATUSNET];
+
+               if ($importer['account-type'] != User::ACCOUNT_TYPE_COMMUNITY) {
+                       $condition = DBA::mergeConditions($condition, ['rel' => [Contact::SHARING, Contact::FRIEND]]);
+               }
+
                $contact_old = DBA::selectFirst('contact', $fields, $condition);
 
                if (DBA::isResult($contact_old)) {
                        $author["contact-id"] = $contact_old["id"];
                        $author["network"] = $contact_old["network"];
                } else {
+                       Logger::info('Blubb', ['condition' => $condition]);
                        if (!$onlyfetch) {
                                Logger::debug("Contact ".$author["link"]." wasn't found for user ".$importer["importer_uid"]." XML: ".$xml);
                        }