enhance(backend): some tweaks

This commit is contained in:
syuilo 2023-10-06 16:17:29 +09:00
parent 132b01461d
commit 87416710c3
4 changed files with 3 additions and 24 deletions

View File

@ -521,9 +521,8 @@ export class NoteCreateService implements OnApplicationShutdown {
}); });
} }
// この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき if (data.renote && data.renote.userId !== user.id && !user.isBot) {
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) { if (data.poll && data.poll.expiresAt) {

View File

@ -64,11 +64,6 @@ export class NoteDeleteService {
const deletedAt = new Date(); const deletedAt = new Date();
const cascadingNotes = await this.findCascadingNotes(note); 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) { if (note.replyId) {
await this.notesRepository.decrement({ id: note.replyId }, 'repliesCount', 1); await this.notesRepository.decrement({ id: note.replyId }, 'repliesCount', 1);
} }

View File

@ -193,7 +193,7 @@ export class ReactionService {
.execute(); .execute();
// 30%の確率でハイライト用ランキング更新 // 30%の確率でハイライト用ランキング更新
if (Math.random() < 0.3) { if (Math.random() < 0.3 && note.userId !== user.id) {
if (note.channelId != null) { if (note.channelId != null) {
this.featuredService.updateInChannelNotesRanking(note.id, note.channelId, 1); this.featuredService.updateInChannelNotesRanking(note.id, note.channelId, 1);
} else if (note.visibility === 'public' && note.userHost == null) { } else if (note.visibility === 'public' && note.userHost == null) {

View File

@ -450,19 +450,4 @@ export class NoteEntityService implements OnModuleInit {
} }
return emojis.filter(x => x.name != null && x.host != null) as { name: string; host: string; }[]; 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();
}
} }