diff options
| author | dakkar <dakkar@thenautilus.net> | 2024-03-02 16:36:49 +0000 |
|---|---|---|
| committer | Amelia Yukii <amelia.yukii@shourai.de> | 2024-03-02 16:36:49 +0000 |
| commit | af548d05ca821725eabd5a96241d3228b92186f0 (patch) | |
| tree | 6d23f6739482466abcc71965cd83f9bbfb2c3ae0 /packages/backend/src/server/api/stream | |
| parent | merge: Fix Images in ReadMe (!445) (diff) | |
| download | sharkey-af548d05ca821725eabd5a96241d3228b92186f0.tar.gz sharkey-af548d05ca821725eabd5a96241d3228b92186f0.tar.bz2 sharkey-af548d05ca821725eabd5a96241d3228b92186f0.zip | |
merge upstream for 2024.2.1
Diffstat (limited to 'packages/backend/src/server/api/stream')
| -rw-r--r-- | packages/backend/src/server/api/stream/channels/home-timeline.ts | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/backend/src/server/api/stream/channels/home-timeline.ts b/packages/backend/src/server/api/stream/channels/home-timeline.ts index e6e9de64ec..0a4852ee8d 100644 --- a/packages/backend/src/server/api/stream/channels/home-timeline.ts +++ b/packages/backend/src/server/api/stream/channels/home-timeline.ts @@ -73,13 +73,21 @@ class HomeTimelineChannel extends Channel { if (note.user.isSilenced && !this.following[note.userId] && note.userId !== this.user!.id) return; - if (note.renote && note.text == null && (note.fileIds == null || note.fileIds.length === 0) && !this.withRenotes) return; + // 純粋なリノート(引用リノートでないリノート)の場合 + if (note.renote && note.text == null && (note.fileIds == null || note.fileIds.length === 0) && note.poll == null) { + if (!this.withRenotes) return; + if (note.renote.reply) { + const reply = note.renote.reply; + // 自分のフォローしていないユーザーの visibility: followers な投稿への返信のリノートは弾く + if (reply.visibility === 'followers' && !Object.hasOwn(this.following, reply.userId)) return; + } + } // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する if (isUserRelated(note, this.userIdsWhoMeMuting)) return; // 流れてきたNoteがブロックされているユーザーが関わるものだったら無視する if (isUserRelated(note, this.userIdsWhoBlockingMe)) return; - + if (note.renote && !note.text && note.renote.mentions?.some(mention => this.userIdsWhoMeMuting.has(mention))) return; if (note.mentions?.some(mention => this.userIdsWhoMeMuting.has(mention))) return; |