]> git.mxchange.org Git - friendica.git/commitdiff
Issue 9094: Prevent announces via DFRN
authorMichael <heluecht@pirati.ca>
Sun, 30 Aug 2020 10:09:54 +0000 (10:09 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 30 Aug 2020 10:09:54 +0000 (10:09 +0000)
src/Protocol/DFRN.php
src/Worker/Notifier.php

index 68824aad8b3f95bb96300e6c46baf9ee9a8aad70..1329968126e43d6be6ba90502e16b5e9d28005ff 100644 (file)
@@ -43,6 +43,7 @@ use Friendica\Model\Post\Category;
 use Friendica\Model\Profile;
 use Friendica\Model\Tag;
 use Friendica\Model\User;
+use Friendica\Model\Verb;
 use Friendica\Network\Probe;
 use Friendica\Util\Crypto;
 use Friendica\Util\DateTimeFormat;
@@ -256,10 +257,11 @@ class DFRN
                        FROM `item` USE INDEX (`uid_wall_changed`) $sql_post_table
                        STRAIGHT_JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
                        WHERE `item`.`uid` = %d AND `item`.`wall` AND `item`.`changed` > '%s'
-                       AND `item`.`visible` $sql_extra
+                       AND `vid` != %d AND `item`.`visible` $sql_extra
                        ORDER BY `item`.`parent` ".$sort.", `item`.`received` ASC LIMIT 0, 300",
                        intval($owner_id),
                        DBA::escape($check_date),
+                       Verb::getID(Activity::ANNOUNCE),
                        DBA::escape($sort)
                );
 
index 17aaed57238672f939a84ebc08ea30e782a00987..3ee75bbb0af6267ff63ced6a0190d9da80affa84 100644 (file)
@@ -685,17 +685,17 @@ class Notifier
                        return false;
                }
 
+               // We deliver reshares via AP whenever possible
+               if (ActivityPub\Transmitter::isAnnounce($item)) {
+                       return true;
+               }
+
                // For the time being we always deliver forum post via DFRN if possible
                // This can be removed possible at the end of 2020 when hopefully most system can process AP forum posts
                if ($owner['account-type'] == User::ACCOUNT_TYPE_COMMUNITY) {
                        return false;
                }
 
-               // We deliver reshares via AP whenever possible
-               if (ActivityPub\Transmitter::isAnnounce($item)) {
-                       return true;
-               }
-
                // Skip DFRN when the item will be (forcefully) delivered via AP
                if (DI::config()->get('debug', 'total_ap_delivery') && ($contact['network'] == Protocol::DFRN) && !empty(APContact::getByURL($contact['url'], false))) {
                        return true;