Skip to content

Commit

Permalink
Only show replies in Following if following all involved actors (blue…
Browse files Browse the repository at this point in the history
…sky-social#4869)

* Only show replies in Following for followed root and grandparent

* Remove now-unnecessary check

* Simplify condition
  • Loading branch information
gaearon authored and tkusano committed Aug 4, 2024
1 parent d7ba1c9 commit e2cc4bb
Showing 1 changed file with 17 additions and 27 deletions.
44 changes: 17 additions & 27 deletions src/lib/api/feed-manip.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,6 @@ export class FeedViewPostsSlice {
return AppBskyFeedDefs.isReasonRepost(reason)
}

get includesThreadRoot() {
return !this.items[0].reply
}

get likeCount() {
return this._feedPost.post.likeCount ?? 0
}
Expand Down Expand Up @@ -119,20 +115,19 @@ export class FeedViewPostsSlice {

isFollowingAllAuthors(userDid: string) {
const feedPost = this._feedPost
if (feedPost.post.author.did === userDid) {
return true
}
if (AppBskyFeedDefs.isPostView(feedPost.reply?.parent)) {
const parent = feedPost.reply?.parent
if (parent?.author.did === userDid) {
return true
const authors = [feedPost.post.author]
if (feedPost.reply) {
if (AppBskyFeedDefs.isPostView(feedPost.reply.parent)) {
authors.push(feedPost.reply.parent.author)
}
if (feedPost.reply.grandparentAuthor) {
authors.push(feedPost.reply.grandparentAuthor)
}
if (AppBskyFeedDefs.isPostView(feedPost.reply.root)) {
authors.push(feedPost.reply.root.author)
}
return (
parent?.author.viewer?.following &&
feedPost.post.author.viewer?.following
)
}
return false
return authors.every(a => a.did === userDid || a.viewer?.following)
}
}

Expand Down Expand Up @@ -304,19 +299,14 @@ export class FeedTuner {
tuner: FeedTuner,
slices: FeedViewPostsSlice[],
): FeedViewPostsSlice[] => {
// remove any replies without at least minLikes likes
for (let i = slices.length - 1; i >= 0; i--) {
const slice = slices[i]
if (slice.isReply) {
if (slice.isThread && slice.includesThreadRoot) {
continue
}
if (slice.isRepost) {
continue
}
if (!slice.isFollowingAllAuthors(userDid)) {
slices.splice(i, 1)
}
if (
slice.isReply &&
!slice.isRepost &&
!slice.isFollowingAllAuthors(userDid)
) {
slices.splice(i, 1)
}
}
return slices
Expand Down

0 comments on commit e2cc4bb

Please sign in to comment.