From 91905bea89b3c2407ec1496190c2abff1d10eda5 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 19 Mar 2022 17:53:41 +0000 Subject: [PATCH] Don't create empty announce notifications --- src/Model/Post/UserNotification.php | 10 +++++----- .../Notifications/Repository/Notification.php | 5 ++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Model/Post/UserNotification.php b/src/Model/Post/UserNotification.php index 0873646a41..f4e700f0bc 100644 --- a/src/Model/Post/UserNotification.php +++ b/src/Model/Post/UserNotification.php @@ -220,7 +220,7 @@ class UserNotification return; } - if (self::checkExplicitMention($item, $profiles)) { + if (($item['verb'] != Activity::ANNOUNCE) && self::checkExplicitMention($item, $profiles)) { $notification_type = $notification_type | self::TYPE_EXPLICIT_TAGGED; if (!$notified) { self::insertNotificationByItem(self::TYPE_EXPLICIT_TAGGED, $uid, $item); @@ -228,7 +228,7 @@ class UserNotification } } - if (self::checkImplicitMention($item, $profiles)) { + if (($item['verb'] != Activity::ANNOUNCE) && self::checkImplicitMention($item, $profiles)) { $notification_type = $notification_type | self::TYPE_IMPLICIT_TAGGED; if (!$notified) { self::insertNotificationByItem(self::TYPE_IMPLICIT_TAGGED, $uid, $item); @@ -252,7 +252,7 @@ class UserNotification } } - if (self::checkCommentedThread($item, $contacts)) { + if (($item['verb'] != Activity::ANNOUNCE) && self::checkCommentedThread($item, $contacts)) { $notification_type = $notification_type | self::TYPE_THREAD_COMMENT; if (!$notified) { self::insertNotificationByItem(self::TYPE_THREAD_COMMENT, $uid, $item); @@ -260,7 +260,7 @@ class UserNotification } } - if (self::checkCommentedParticipation($item, $contacts)) { + if (($item['verb'] != Activity::ANNOUNCE) && self::checkCommentedParticipation($item, $contacts)) { $notification_type = $notification_type | self::TYPE_COMMENT_PARTICIPATION; if (!$notified) { self::insertNotificationByItem(self::TYPE_COMMENT_PARTICIPATION, $uid, $item); @@ -268,7 +268,7 @@ class UserNotification } } - if (self::checkActivityParticipation($item, $contacts)) { + if (($item['verb'] != Activity::ANNOUNCE) && self::checkActivityParticipation($item, $contacts)) { $notification_type = $notification_type | self::TYPE_ACTIVITY_PARTICIPATION; if (!$notified) { self::insertNotificationByItem(self::TYPE_ACTIVITY_PARTICIPATION, $uid, $item); diff --git a/src/Navigation/Notifications/Repository/Notification.php b/src/Navigation/Notifications/Repository/Notification.php index 8df93a0058..7c3a65fc09 100644 --- a/src/Navigation/Notifications/Repository/Notification.php +++ b/src/Navigation/Notifications/Repository/Notification.php @@ -138,8 +138,7 @@ class Notification extends BaseRepository */ public function selectDigestForUser(int $uid): Collection\Notifications { - $values = [$uid, Verb::getID(\Friendica\Protocol\Activity::ANNOUNCE), - UserNotification::TYPE_COMMENT_PARTICIPATION, UserNotification::TYPE_ACTIVITY_PARTICIPATION, UserNotification::TYPE_THREAD_COMMENT]; + $values = [$uid]; $like_condition = ''; if (!$this->pconfig->get($uid, 'system', 'notify_like')) { @@ -159,7 +158,7 @@ class Notification extends BaseRepository WHERE `id` IN ( SELECT MAX(`id`) FROM `notification` - WHERE `uid` = ? AND NOT (`vid` = ? AND `type` IN (?, ?, ?)) + WHERE `uid` = ? $like_condition $announce_condition GROUP BY IFNULL(`parent-uri-id`, `actor-id`)