about summary refs log tree commit diff
path: root/src/lib/api
diff options
context:
space:
mode:
authorkindgracekind <155408223+kindgracekind@users.noreply.github.com>2025-08-04 10:27:27 -0500
committerGitHub <noreply@github.com>2025-08-04 10:27:27 -0500
commitb32568260f98ea879468fd1bdedacf85d1e6ae8c (patch)
treebafac50d473aa0c84d079bb3a4e53ba2d4f96184 /src/lib/api
parent9aa35e9fbb6136a88a66388ff5e4644ad25c9e4b (diff)
downloadvoidsky-b32568260f98ea879468fd1bdedacf85d1e6ae8c.tar.zst
Add feed tuner to remove muted threads (#8773)
Diffstat (limited to 'src/lib/api')
-rw-r--r--src/lib/api/feed-manip.ts16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts
index 3309191f3..335bf28c8 100644
--- a/src/lib/api/feed-manip.ts
+++ b/src/lib/api/feed-manip.ts
@@ -41,6 +41,7 @@ export class FeedViewPostsSlice {
   isIncompleteThread: boolean
   isFallbackMarker: boolean
   isOrphan: boolean
+  isThreadMuted: boolean
   rootUri: string
   feedPostUri: string
 
@@ -50,6 +51,7 @@ export class FeedViewPostsSlice {
     this.isIncompleteThread = false
     this.isFallbackMarker = false
     this.isOrphan = false
+    this.isThreadMuted = post.viewer?.threadMuted ?? false
     this.feedPostUri = post.uri
     if (AppBskyFeedDefs.isPostView(reply?.root)) {
       this.rootUri = reply.root.uri
@@ -361,6 +363,20 @@ export class FeedTuner {
     return slices
   }
 
+  static removeMutedThreads(
+    tuner: FeedTuner,
+    slices: FeedViewPostsSlice[],
+    _dryRun: boolean,
+  ) {
+    for (let i = 0; i < slices.length; i++) {
+      if (slices[i].isThreadMuted) {
+        slices.splice(i, 1)
+        i--
+      }
+    }
+    return slices
+  }
+
   static dedupThreads(
     tuner: FeedTuner,
     slices: FeedViewPostsSlice[],