diff --git a/packages/backend/src/core/QueueService.ts b/packages/backend/src/core/QueueService.ts index a29e6412a7..96b52c33b4 100644 --- a/packages/backend/src/core/QueueService.ts +++ b/packages/backend/src/core/QueueService.ts @@ -72,7 +72,7 @@ export class QueueService { this.systemQueue.add('autoDeleteNotes', { }, { - repeat: { pattern: '*/1 * * * *' }, + repeat: { pattern: '*/5 * * * *' }, removeOnComplete: true, }); } diff --git a/packages/backend/src/queue/processors/AutoDeleteNotesProcessorService.ts b/packages/backend/src/queue/processors/AutoDeleteNotesProcessorService.ts index b44676e665..c3a057c3b2 100644 --- a/packages/backend/src/queue/processors/AutoDeleteNotesProcessorService.ts +++ b/packages/backend/src/queue/processors/AutoDeleteNotesProcessorService.ts @@ -37,35 +37,38 @@ export class AutoDeleteNotesProcessorService { public async process(): Promise { this.logger.info('Auto deleting old notes...'); - const users = await this.userProfilesRepository.createQueryBuilder('user_profile') + const userProfiles = await this.userProfilesRepository.createQueryBuilder('user_profile') .innerJoinAndSelect('user_profile.user', 'user') .where('user.host IS NULL') .andWhere('user_profile.autoDeleteNotes') .getMany(); - for (const user of users) { - this.logger.info(`Deleting old notes of user @${user.user.username} (id ${user.user.id})`); - const untilTime = Date.now() - (user.autoDeleteNotesMinutes * 1000 * 60); + for (const userProfile of userProfiles) { + const user = userProfile.user; + this.logger.debug(`Deleting old notes of user @${user.username} (id ${user.id})`); + const untilTime = Date.now() - (userProfile.autoDeleteNotesMinutes * 1000 * 60); const untilId = this.idService.gen(untilTime); const pins = await this.userNotePiningsRepository.createQueryBuilder('user_note_pining') - .where('"userId" = :userId', { userId: user.user.id }) + .where('"userId" = :userId', { userId: user.id }) .getMany(); const pinnedNoteIds = pins.map((p) => p.noteId); const notes = await this.notesRepository.createQueryBuilder('note') - .where('note."userId" = :userId', { userId: user.user.id }) + .where('note."userId" = :userId', { userId: user.id }) .andWhere('note.id < :untilId', { untilId }) - .andWhere('note.id NOT IN (SELECT "noteId" FROM note_favorite WHERE "userId" = :userId)'); + .andWhere('note.id NOT IN (SELECT "noteId" FROM note_favorite WHERE "userId" = :userId)') .getMany(); for (const note of notes) { if (pinnedNoteIds.includes(note.id)) { + this.logger.debug(`Skipping note ${note.id} as it is pinned`); continue; } - await this.noteDeleteService.delete(user, note); + this.logger.debug(`Deleting note ${note.id}`); + await this.noteDeleteService.delete(user, note, false, user); } } diff --git a/packages/frontend/src/pages/settings/privacy.autodelete.vue b/packages/frontend/src/pages/settings/privacy.autodelete.vue index ebe58c5de8..cec6da21d0 100644 --- a/packages/frontend/src/pages/settings/privacy.autodelete.vue +++ b/packages/frontend/src/pages/settings/privacy.autodelete.vue @@ -11,12 +11,12 @@ - - {{ i18n.ts.oneWeek }} - {{ i18n.ts.oneMonth }} - {{ i18n.ts.oneYear }} - - + + {{ i18n.ts.oneWeek }} + {{ i18n.ts.oneMonth }} + {{ i18n.ts.oneYear }} + + @@ -50,17 +50,17 @@ function setThreshold(value) { async function save() { if (enable.value) { - const { canceled } = await os.confirm({ - type: 'warning', - text: 'This action may immediately delete notes older than the threshold value! Click ok to confirm.', - }); + const { canceled } = await os.confirm({ + type: 'warning', + text: 'This action may immediately delete notes older than the threshold value! Click ok to confirm.', + }); - if (canceled) return; + if (canceled) return; } misskeyApi('i/update', { - autoDeleteNotes: !!enable.value, - autoDeleteNotesMinutes: threshold.value, + autoDeleteNotes: !!enable.value, + autoDeleteNotesMinutes: threshold.value, }); }