]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/Notifier.php
Merge pull request #8494 from annando/ap-fix-comments
[friendica.git] / src / Worker / Notifier.php
index d8c424ed036ed5d0310e755206965f4ed9a6d6c7..35a228fce1b1622d2fc548857fa1c6663a5c082c 100644 (file)
@@ -1,7 +1,24 @@
 <?php
 /**
- * @file src/Worker/Notifier.php
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
  */
+
 namespace Friendica\Worker;
 
 use Friendica\Core\Hook;
@@ -70,12 +87,9 @@ class Notifier
                                        'APDelivery', $cmd, $target_id, $inbox, $uid);
                        }
                } elseif ($cmd == Delivery::SUGGESTION) {
-                       $suggest = DBA::selectFirst('fsuggest', ['uid', 'cid'], ['id' => $target_id]);
-                       if (!DBA::isResult($suggest)) {
-                               return;
-                       }
-                       $uid = $suggest['uid'];
-                       $recipients[] = $suggest['cid'];
+                       $suggest = DI::fsuggest()->getById($target_id);
+                       $uid = $suggest->uid;
+                       $recipients[] = $suggest->cid;
                } elseif ($cmd == Delivery::REMOVAL) {
                        return self::notifySelfRemoval($target_id, $a->queue['priority'], $a->queue['created']);
                } elseif ($cmd == Delivery::RELOCATION) {
@@ -137,6 +151,8 @@ class Notifier
                // If this is a public conversation, notify the feed hub
                $public_message = true;
 
+               $unlisted = false;
+
                // Do a PuSH
                $push_notify = false;
 
@@ -169,6 +185,8 @@ class Notifier
                                Logger::info('Threaded comment', ['diaspora_delivery' => (int)$diaspora_delivery]);
                        }
 
+                       $unlisted = $target_item['private'] == Item::UNLISTED;
+
                        // This is IMPORTANT!!!!
 
                        // We will only send a "notify owner to relay" or followup message if the referenced post
@@ -231,8 +249,7 @@ class Notifier
 
                                Logger::info('Followup', ['target' => $target_id, 'guid' => $target_item['guid'], 'to' => $parent['contact-id']]);
 
-                               //if (!$target_item['private'] && $target_item['wall'] &&
-                               if (!$target_item['private'] &&
+                               if (($target_item['private'] != Item::PRIVATE) &&
                                        (strlen($target_item['allow_cid'].$target_item['allow_gid'].
                                                $target_item['deny_cid'].$target_item['deny_gid']) == 0))
                                        $push_notify = true;
@@ -396,7 +413,7 @@ class Notifier
                if ($public_message && !in_array($cmd, [Delivery::MAIL, Delivery::SUGGESTION]) && !$followup) {
                        $relay_list = [];
 
-                       if ($diaspora_delivery) {
+                       if ($diaspora_delivery && !$unlisted) {
                                $batch_delivery = true;
 
                                $relay_list_stmt = DBA::p(