about summary refs log tree commit diff
path: root/src/state/queries/notifications/util.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/state/queries/notifications/util.ts')
-rw-r--r--src/state/queries/notifications/util.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/state/queries/notifications/util.ts b/src/state/queries/notifications/util.ts
index faccd8087..a47659a84 100644
--- a/src/state/queries/notifications/util.ts
+++ b/src/state/queries/notifications/util.ts
@@ -7,6 +7,7 @@ import {
   AppBskyGraphStarterpack,
   type AppBskyNotificationListNotifications,
   type BskyAgent,
+  hasMutedWord,
   moderateNotification,
   type ModerationOpts,
 } from '@atproto/api'
@@ -125,6 +126,23 @@ export function shouldFilterNotif(
   if (!moderationOpts) {
     return false
   }
+  if (
+    notif.reason === 'subscribed-post' &&
+    bsky.dangerousIsType<AppBskyFeedPost.Record>(
+      notif.record,
+      AppBskyFeedPost.isRecord,
+    ) &&
+    hasMutedWord({
+      mutedWords: moderationOpts.prefs.mutedWords,
+      text: notif.record.text,
+      facets: notif.record.facets,
+      outlineTags: notif.record.tags,
+      languages: notif.record.langs,
+      actor: notif.author,
+    })
+  ) {
+    return true
+  }
   if (notif.author.viewer?.following) {
     return false
   }