From dceb6dffc9683439571fce5ae17de8ad5cf83b11 Mon Sep 17 00:00:00 2001 From: Hazelnoot Date: Wed, 25 Jun 2025 13:55:09 -0400 Subject: [PATCH] implement clippedCountDelta in updateNoteQueue --- packages/backend/src/core/ClipService.ts | 6 ++++-- packages/backend/src/core/CollapsedQueueService.ts | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/backend/src/core/ClipService.ts b/packages/backend/src/core/ClipService.ts index 35b962cc04..575440abd6 100644 --- a/packages/backend/src/core/ClipService.ts +++ b/packages/backend/src/core/ClipService.ts @@ -11,6 +11,7 @@ import { bindThis } from '@/decorators.js'; import { isDuplicateKeyValueError } from '@/misc/is-duplicate-key-value-error.js'; import { RoleService } from '@/core/RoleService.js'; import { IdService } from '@/core/IdService.js'; +import { CollapsedQueueService } from '@/core/CollapsedQueueService.js'; import type { MiLocalUser } from '@/models/User.js'; import { TimeService } from '@/global/TimeService.js'; @@ -35,6 +36,7 @@ export class ClipService { private roleService: RoleService, private idService: IdService, private readonly timeService: TimeService, + private readonly collapsedQueueService: CollapsedQueueService, ) { } @@ -130,7 +132,7 @@ export class ClipService { lastClippedAt: this.timeService.date, }); - this.notesRepository.increment({ id: noteId }, 'clippedCount', 1); + this.collapsedQueueService.updateNoteQueue.enqueue(noteId, { clippedCountDelta: 1 }); } @bindThis @@ -155,6 +157,6 @@ export class ClipService { clipId: clip.id, }); - this.notesRepository.decrement({ id: noteId }, 'clippedCount', 1); + this.collapsedQueueService.updateNoteQueue.enqueue(noteId, { clippedCountDelta: -1 }); } } diff --git a/packages/backend/src/core/CollapsedQueueService.ts b/packages/backend/src/core/CollapsedQueueService.ts index d701788383..0cc4ba6e0c 100644 --- a/packages/backend/src/core/CollapsedQueueService.ts +++ b/packages/backend/src/core/CollapsedQueueService.ts @@ -32,6 +32,7 @@ export type UpdateUserJob = { export type UpdateNoteJob = { repliesCountDelta?: number; renoteCountDelta?: number; + clippedCountDelta?: number; }; @Injectable() @@ -107,10 +108,12 @@ export class CollapsedQueueService implements OnApplicationShutdown { (oldJob, newJob) => ({ repliesCountDelta: (oldJob.repliesCountDelta ?? 0) + (newJob.repliesCountDelta ?? 0), renoteCountDelta: (oldJob.renoteCountDelta ?? 0) + (newJob.renoteCountDelta ?? 0), + clippedCountDelta: (oldJob.clippedCountDelta ?? 0) + (newJob.clippedCountDelta ?? 0), }), (id, job) => this.notesRepository.update({ id }, { repliesCount: job.repliesCountDelta ? () => `"repliesCount" + ${job.repliesCountDelta}` : undefined, renoteCount: job.renoteCountDelta ? () => `"renoteCount" + ${job.renoteCountDelta}` : undefined, + clippedCount: job.clippedCountDelta ? () => `"clippedCount" + ${job.clippedCountDelta}` : undefined, }), { onError: this.onQueueError,