From 87416710c323966aa267442acea419e62c56f325 Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Fri, 6 Oct 2023 16:17:29 +0900
Subject: [PATCH] enhance(backend): some tweaks

---
 packages/backend/src/core/NoteCreateService.ts    |  5 ++---
 packages/backend/src/core/NoteDeleteService.ts    |  5 -----
 packages/backend/src/core/ReactionService.ts      |  2 +-
 .../src/core/entities/NoteEntityService.ts        | 15 ---------------
 4 files changed, 3 insertions(+), 24 deletions(-)

diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index ca9dbfa642..32f1af4528 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -521,9 +521,8 @@ export class NoteCreateService implements OnApplicationShutdown {
 			});
 		}
 
-		// この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき
-		if (data.renote && (await this.noteEntityService.countSameRenotes(user.id, data.renote.id, note.id) === 0)) {
-			if (!user.isBot) this.incRenoteCount(data.renote);
+		if (data.renote && data.renote.userId !== user.id && !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 3d443b4a06..9a817ffd76 100644
--- a/packages/backend/src/core/NoteDeleteService.ts
+++ b/packages/backend/src/core/NoteDeleteService.ts
@@ -64,11 +64,6 @@ export class NoteDeleteService {
 		const deletedAt = new Date();
 		const cascadingNotes = await this.findCascadingNotes(note);
 
-		// この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき
-		if (note.renoteId && (await this.noteEntityService.countSameRenotes(user.id, note.renoteId, note.id)) === 0) {
-			this.notesRepository.decrement({ id: note.renoteId }, 'renoteCount', 1);
-		}
-
 		if (note.replyId) {
 			await this.notesRepository.decrement({ id: note.replyId }, 'repliesCount', 1);
 		}
diff --git a/packages/backend/src/core/ReactionService.ts b/packages/backend/src/core/ReactionService.ts
index 298a62ffd9..e409495de5 100644
--- a/packages/backend/src/core/ReactionService.ts
+++ b/packages/backend/src/core/ReactionService.ts
@@ -193,7 +193,7 @@ export class ReactionService {
 			.execute();
 
 		// 30%の確率でハイライト用ランキング更新
-		if (Math.random() < 0.3) {
+		if (Math.random() < 0.3 && note.userId !== user.id) {
 			if (note.channelId != null) {
 				this.featuredService.updateInChannelNotesRanking(note.id, note.channelId, 1);
 			} else if (note.visibility === 'public' && note.userHost == null) {
diff --git a/packages/backend/src/core/entities/NoteEntityService.ts b/packages/backend/src/core/entities/NoteEntityService.ts
index 824f8fa71d..e45a7992bb 100644
--- a/packages/backend/src/core/entities/NoteEntityService.ts
+++ b/packages/backend/src/core/entities/NoteEntityService.ts
@@ -450,19 +450,4 @@ export class NoteEntityService implements OnModuleInit {
 		}
 		return emojis.filter(x => x.name != null && x.host != null) as { name: string; host: string; }[];
 	}
-
-	@bindThis
-	public async countSameRenotes(userId: string, renoteId: string, excludeNoteId: string | undefined): Promise<number> {
-		// 指定したユーザーの指定したノートのリノートがいくつあるか数える
-		const query = this.notesRepository.createQueryBuilder('note')
-			.where('note.userId = :userId', { userId })
-			.andWhere('note.renoteId = :renoteId', { renoteId });
-
-		// 指定した投稿を除く
-		if (excludeNoteId) {
-			query.andWhere('note.id != :excludeNoteId', { excludeNoteId });
-		}
-
-		return await query.getCount();
-	}
 }