diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts index b0a8f03af1ee24aaf343538c217fcfd584e58a51..e9c2252314ad26b1c8702b0880877ead84319287 100644 --- a/packages/backend/src/core/NoteCreateService.ts +++ b/packages/backend/src/core/NoteCreateService.ts @@ -198,6 +198,7 @@ export class NoteCreateService { host: User['host']; isSilenced: User['isSilenced']; createdAt: User['createdAt']; + isBot: User['isBot']; }, data: Option, silent = false): Promise<Note> { // ãƒãƒ£ãƒ³ãƒãƒ«å¤–ã«ãƒªãƒ—ライã—ãŸã‚‰å¯¾è±¡ã®ã‚¹ã‚³ãƒ¼ãƒ—ã«åˆã‚ã›ã‚‹ // (クライアントサイドã§ã‚„ã£ã¦ã‚‚良ã„処ç†ã ã¨æ€ã†ã‘ã©ã¨ã‚Šã‚ãˆãšã‚µãƒ¼ãƒãƒ¼ã‚µã‚¤ãƒ‰ã§) @@ -415,6 +416,7 @@ export class NoteCreateService { host: User['host']; isSilenced: User['isSilenced']; createdAt: User['createdAt']; + isBot: User['isBot']; }, data: Option, silent: boolean, tags: string[], mentionedUsers: MinimumUser[]) { // 統計を更新 this.notesChart.update(note, true); @@ -484,7 +486,7 @@ export class NoteCreateService { // ã“ã®æŠ•ç¨¿ã‚’除ã指定ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚ˆã‚‹æŒ‡å®šã—ãŸãƒŽãƒ¼ãƒˆã®ãƒªãƒŽãƒ¼ãƒˆãŒå˜åœ¨ã—ãªã„ã¨ã if (data.renote && (await this.noteEntityService.countSameRenotes(user.id, data.renote.id, note.id) === 0)) { - this.incRenoteCount(data.renote); + if (!user.isBot) this.incRenoteCount(data.renote); } if (data.poll && data.poll.expiresAt) { diff --git a/packages/backend/src/core/NoteDeleteService.ts b/packages/backend/src/core/NoteDeleteService.ts index 7331d035521cd91ad96bd195c0f0c93ec414c6fe..1313fcbd3d09cada733cad3c6d81349810e641e9 100644 --- a/packages/backend/src/core/NoteDeleteService.ts +++ b/packages/backend/src/core/NoteDeleteService.ts @@ -49,13 +49,13 @@ 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']; isBot: User['isBot']; }, note: Note, quiet = false) { const deletedAt = new Date(); // ã“ã®æŠ•ç¨¿ã‚’除ã指定ã—ãŸãƒ¦ãƒ¼ã‚¶ãƒ¼ã«ã‚ˆã‚‹æŒ‡å®šã—ãŸãƒŽãƒ¼ãƒˆã®ãƒªãƒŽãƒ¼ãƒˆãŒå˜åœ¨ã—ãªã„ã¨ã if (note.renoteId && (await this.noteEntityService.countSameRenotes(user.id, note.renoteId, note.id)) === 0) { this.notesRepository.decrement({ id: note.renoteId }, 'renoteCount', 1); - this.notesRepository.decrement({ id: note.renoteId }, 'score', 1); + if (!user.isBot) this.notesRepository.decrement({ id: note.renoteId }, 'score', 1); } if (note.replyId) { diff --git a/packages/backend/src/core/ReactionService.ts b/packages/backend/src/core/ReactionService.ts index 09022b57abad37ba7b2b1d5b1f48df779490c953..1775d5422871a595d38d609c8208a0b457d71680 100644 --- a/packages/backend/src/core/ReactionService.ts +++ b/packages/backend/src/core/ReactionService.ts @@ -83,7 +83,7 @@ export class ReactionService { } @bindThis - public async create(user: { id: User['id']; host: User['host']; }, note: Note, reaction?: string) { + public async create(user: { id: User['id']; host: User['host']; isBot: User['isBot'] }, note: Note, reaction?: string) { // Check blocking if (note.userId !== user.id) { const block = await this.blockingsRepository.findOneBy({ @@ -139,7 +139,7 @@ export class ReactionService { await this.notesRepository.createQueryBuilder().update() .set({ reactions: () => sql, - score: () => '"score" + 1', + ... (!user.isBot ? { score: () => '"score" + 1' } : {}), }) .where('id = :id', { id: note.id }) .execute(); @@ -199,7 +199,7 @@ export class ReactionService { } @bindThis - public async delete(user: { id: User['id']; host: User['host']; }, note: Note) { + public async delete(user: { id: User['id']; host: User['host']; isBot: User['isBot']; }, note: Note) { // if already unreacted const exist = await this.noteReactionsRepository.findOneBy({ noteId: note.id, @@ -226,7 +226,7 @@ export class ReactionService { .where('id = :id', { id: note.id }) .execute(); - this.notesRepository.decrement({ id: note.id }, 'score', 1); + if (!user.isBot) this.notesRepository.decrement({ id: note.id }, 'score', 1); this.globalEventServie.publishNoteStream(note.id, 'unreacted', { reaction: this.decodeReaction(exist.reaction).reaction,