diff --git a/CHANGELOG.md b/CHANGELOG.md index f5abf9b839336328f3d613b7d5fc1f26056205f6..c597837def84ae26576f2e10eccddf3a1523a378 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ - Update unfollow api endpoint to only decrement when appropriate, fixes #3539 ([44de1ad7](https://github.com/pixelfed/pixelfed/commit/44de1ad7)) - Improve cache invalidation after processing VideoThumbnail to eliminate "No Preview Available" on grid feeds ([47571887](https://github.com/pixelfed/pixelfed/commit/47571887)) - Use poster in VideoPresenter component ([a3cc90b0](https://github.com/pixelfed/pixelfed/commit/a3cc90b0)) +- Fix mastoapi notification type casting to include comment and share (mention and reblog) notifications ([eba84530](https://github.com/pixelfed/pixelfed/commit/eba84530)) - ([](https://github.com/pixelfed/pixelfed/commit/)) ## [v0.11.3 (2022-05-09)](https://github.com/pixelfed/pixelfed/compare/v0.11.2...v0.11.3) diff --git a/app/Services/NotificationService.php b/app/Services/NotificationService.php index 51ff829cb84be637a9ff7d7b98b3377cf834413f..cd0044bb7d018b8f404cef49a79f20b4e523d96d 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);