about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-03-21 13:47:17 -0500
committerPaul Frazee <pfrazee@gmail.com>2023-03-21 13:47:17 -0500
commiteab855ffffcb7e9aae0c5e9a72056dc4fcd5e430 (patch)
treeeb6b46a45bdca7be9d6b35382f72abd20778f804
parentb542f0f7f8fc9cc93e22d964d8bab1ba30d47204 (diff)
downloadvoidsky-eab855ffffcb7e9aae0c5e9a72056dc4fcd5e430.tar.zst
A few fixes to ensure threads show up as often as possible
-rw-r--r--src/lib/api/feed-manip.ts9
-rw-r--r--src/state/models/feed-view.ts1
2 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts
index f6b54a175..664bacd88 100644
--- a/src/lib/api/feed-manip.ts
+++ b/src/lib/api/feed-manip.ts
@@ -28,13 +28,16 @@ export class FeedViewPostsSlice {
   get isThread() {
     return (
       this.items.length > 1 &&
-      !this.items[0].reply &&
       this.items.every(
         item => item.post.author.did === this.items[0].post.author.did,
       )
     )
   }
 
+  get isFullThread() {
+    return this.isThread && !this.items[0].reply
+  }
+
   get isReply() {
     return this.items.length > 1 && !this.isThread
   }
@@ -119,7 +122,7 @@ export class FeedTuner {
     // remove any items already "seen"
     const soonToBeSeenUris: Set<string> = new Set()
     for (let i = slices.length - 1; i >= 0; i--) {
-      if (this.seenUris.has(slices[i].uri)) {
+      if (!slices[i].isThread && this.seenUris.has(slices[i].uri)) {
         slices.splice(i, 1)
       } else {
         for (const item of slices[i].items) {
@@ -183,7 +186,7 @@ export class FeedTuner {
   static likedRepliesOnly(tuner: FeedTuner, slices: FeedViewPostsSlice[]) {
     // remove any replies without at least 2 likes
     for (let i = slices.length - 1; i >= 0; i--) {
-      if (slices[i].isThread) {
+      if (slices[i].isFullThread) {
         continue
       }
       const item = slices[i].rootItem
diff --git a/src/state/models/feed-view.ts b/src/state/models/feed-view.ts
index 0fbfa515a..075016c12 100644
--- a/src/state/models/feed-view.ts
+++ b/src/state/models/feed-view.ts
@@ -200,7 +200,6 @@ export class FeedSliceModel {
   get isThread() {
     return (
       this.items.length > 1 &&
-      !this.items[0].reply &&
       this.items.every(
         item => item.post.author.did === this.items[0].post.author.did,
       )