enhance(backend): some tweaks
This commit is contained in:
parent
132b01461d
commit
87416710c3
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue