From eba84530aac2acf9de2f6f744f7d1bad663fe63f Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Thu, 4 Aug 2022 02:13:33 -0600 Subject: [PATCH] Fix mastoapi notification type casting to include comment and share (mention and reblog) notifications --- app/Services/NotificationService.php | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/Services/NotificationService.php b/app/Services/NotificationService.php index 51ff829c..cd0044bb 100644 --- a/app/Services/NotificationService.php +++ b/app/Services/NotificationService.php @@ -105,7 +105,7 @@ class NotificationService { $res = collect([]); foreach($ids as $id) { - $n = self::getNotification($id); + $n = self::rewriteMastodonTypes(self::getNotification($id)); if($n != null && in_array($n['type'], self::MASTODON_TYPES)) { $n['account'] = AccountService::getMastodon($n['account']['id']); @@ -133,7 +133,7 @@ class NotificationService { $res = collect([]); foreach($ids as $id) { - $n = self::getNotification($id); + $n = self::rewriteMastodonTypes(self::getNotification($id)); if($n != null && in_array($n['type'], self::MASTODON_TYPES)) { $n['account'] = AccountService::getMastodon($n['account']['id']); @@ -175,6 +175,23 @@ class NotificationService { ])); } + public static function rewriteMastodonTypes($notification) + { + if(!$notification || !isset($notification['type'])) { + return $notification; + } + + if($notification['type'] === 'comment') { + $notification['type'] = 'mention'; + } + + if($notification['type'] === 'share') { + $notification['type'] = 'reblog'; + } + + return $notification; + } + public static function set($id, $val) { return Redis::zadd(self::CACHE_KEY . $id, $val, $val);