diff options
| author | anatawa12 <anatawa12@icloud.com> | 2023-12-04 14:38:21 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-04 14:38:21 +0900 |
| commit | 18109fcef760dee8171364fd0382375c4047b8e7 (patch) | |
| tree | 20bc2c25c8e90070ea8aa77c06cb3b7fa3a28810 /packages/backend/src/core/NoteCreateService.ts | |
| parent | fix dev build (#12566) (diff) | |
| download | sharkey-18109fcef760dee8171364fd0382375c4047b8e7.tar.gz sharkey-18109fcef760dee8171364fd0382375c4047b8e7.tar.bz2 sharkey-18109fcef760dee8171364fd0382375c4047b8e7.zip | |
Filter User / Instance Mutes in FanoutTimelineEndpointService (#12565)
* fix: unnecessary logging in FanoutTimelineEndpointService
* chore: TimelineOptions
* chore: add FanoutTimelineName type
* chore: forbid specifying both withReplies and withFiles since it's not implemented correctly
* chore: filter mutes, replies, renotes, files in FanoutTimelineEndpointService
* revert unintended changes
* use isReply in NoteCreateService
* fix: excludePureRenotes is not implemented
* fix: replies to me is excluded from local timeline
* chore(frontend): forbid enabling both withReplies and withFiles
* docs(changelog): インスタンスミュートが効かない問題の修正について言及
Diffstat (limited to 'packages/backend/src/core/NoteCreateService.ts')
| -rw-r--r-- | packages/backend/src/core/NoteCreateService.ts | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts index fd87edc28e..0110ebaf5e 100644 --- a/packages/backend/src/core/NoteCreateService.ts +++ b/packages/backend/src/core/NoteCreateService.ts @@ -57,6 +57,7 @@ import { FeaturedService } from '@/core/FeaturedService.js'; import { FanoutTimelineService } from '@/core/FanoutTimelineService.js'; import { UtilityService } from '@/core/UtilityService.js'; import { UserBlockingService } from '@/core/UserBlockingService.js'; +import { isReply } from '@/misc/is-reply.js'; type NotificationType = 'reply' | 'renote' | 'quote' | 'mention'; @@ -891,7 +892,7 @@ export class NoteCreateService implements OnApplicationShutdown { if (note.visibility === 'specified' && !note.visibleUserIds.some(v => v === following.followerId)) continue; // 「自分自身への返信 or そのフォロワーへの返信」のどちらでもない場合 - if (note.replyId && !(note.replyUserId === note.userId || note.replyUserId === following.followerId)) { + if (isReply(note, following.followerId)) { if (!following.withReplies) continue; } @@ -909,7 +910,7 @@ export class NoteCreateService implements OnApplicationShutdown { ) continue; // 「自分自身への返信 or そのリストの作成者への返信」のどちらでもない場合 - if (note.replyId && !(note.replyUserId === note.userId || note.replyUserId === userListMembership.userListUserId)) { + if (isReply(note, userListMembership.userListUserId)) { if (!userListMembership.withReplies) continue; } @@ -927,7 +928,7 @@ export class NoteCreateService implements OnApplicationShutdown { } // 自分自身以外への返信 - if (note.replyId && note.replyUserId !== note.userId) { + if (isReply(note)) { this.fanoutTimelineService.push(`userTimelineWithReplies:${user.id}`, note.id, note.userHost == null ? meta.perLocalUserUserTimelineCacheMax : meta.perRemoteUserUserTimelineCacheMax, r); if (note.visibility === 'public' && note.userHost == null) { |