diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts index a23e10567..a154f36b1 100644 --- a/packages/backend/src/core/NoteCreateService.ts +++ b/packages/backend/src/core/NoteCreateService.ts @@ -194,6 +194,7 @@ export class NoteCreateService { host: User['host']; isSilenced: User['isSilenced']; createdAt: User['createdAt']; + followersCount: User['followersCount']; }, data: Option, silent = false): Promise { // チャンネル外にリプライしたら対象のスコープに合わせる // (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで) @@ -409,10 +410,14 @@ export class NoteCreateService { host: User['host']; isSilenced: User['isSilenced']; createdAt: User['createdAt']; + followersCount: User['followersCount']; }, data: Option, silent: boolean, tags: string[], mentionedUsers: MinimumUser[]) { // 統計を更新 this.notesChart.update(note, true); - this.perUserNotesChart.update(user, note, true); + + if (user.followersCount) { + this.perUserNotesChart.update(user, note, true); + } // Register host if (this.userEntityService.isRemoteUser(user)) { diff --git a/packages/backend/src/core/NoteDeleteService.ts b/packages/backend/src/core/NoteDeleteService.ts index ccc583c5b..e40ec48e2 100644 --- a/packages/backend/src/core/NoteDeleteService.ts +++ b/packages/backend/src/core/NoteDeleteService.ts @@ -48,7 +48,7 @@ export class NoteDeleteService { * @param user 投稿者 * @param note 投稿 */ - async delete(user: { id: User['id']; uri: User['uri']; host: User['host']; }, note: Note, quiet = false) { + async delete(user: { id: User['id']; uri: User['uri']; host: User['host']; followersCount: User['followersCount']; }, note: Note, quiet = false) { const deletedAt = new Date(); // この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき @@ -96,7 +96,10 @@ export class NoteDeleteService { // 統計を更新 this.notesChart.update(note, false); - this.perUserNotesChart.update(user, note, false); + + if (user.followersCount) { + this.perUserNotesChart.update(user, note, false); + } if (this.userEntityService.isRemoteUser(user)) { this.federatedInstanceService.registerOrFetchInstanceDoc(user.host).then(i => { diff --git a/packages/backend/src/core/ReactionService.ts b/packages/backend/src/core/ReactionService.ts index d5b3c0e79..87c109589 100644 --- a/packages/backend/src/core/ReactionService.ts +++ b/packages/backend/src/core/ReactionService.ts @@ -81,7 +81,7 @@ export class ReactionService { ) { } - public async create(user: { id: User['id']; host: User['host']; }, note: Note, reaction?: string) { + public async create(user: { id: User['id']; host: User['host']; followersCount: User['followersCount']; }, note: Note, reaction?: string) { // Check blocking if (note.userId !== user.id) { const block = await this.blockingsRepository.findOneBy({ @@ -142,7 +142,9 @@ export class ReactionService { .where('id = :id', { id: note.id }) .execute(); - this.perUserReactionsChart.update(user, note); + if (user.followersCount) { + this.perUserReactionsChart.update(user, note); + } // カスタム絵文字リアクションだったら絵文字情報も送る const decodedReaction = this.decodeReaction(reaction);