From f54cb285cef281c608925e62db995c5665070965 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sat, 2 May 2026 07:16:10 +0300 Subject: [PATCH] Delete old room links routine --- app/features/chat/RoomLinkRepository.server.ts | 11 +++++++++++ app/routines/deleteOldRoomLinks.ts | 11 +++++++++++ app/routines/list.server.ts | 2 ++ 3 files changed, 24 insertions(+) create mode 100644 app/routines/deleteOldRoomLinks.ts diff --git a/app/features/chat/RoomLinkRepository.server.ts b/app/features/chat/RoomLinkRepository.server.ts index a120822a2..68f092930 100644 --- a/app/features/chat/RoomLinkRepository.server.ts +++ b/app/features/chat/RoomLinkRepository.server.ts @@ -45,3 +45,14 @@ export function refreshTimestamp(userId: number) { .where("userId", "=", userId) .execute(); } + +export function deleteOld() { + return db + .deleteFrom("RoomLink") + .where( + "refreshedAt", + "<", + dateToDatabaseTimestamp(sub(new Date(), { hours: 2 })), + ) + .executeTakeFirst(); +} diff --git a/app/routines/deleteOldRoomLinks.ts b/app/routines/deleteOldRoomLinks.ts new file mode 100644 index 000000000..e58f701c4 --- /dev/null +++ b/app/routines/deleteOldRoomLinks.ts @@ -0,0 +1,11 @@ +import * as RoomLinkRepository from "../features/chat/RoomLinkRepository.server"; +import { logger } from "../utils/logger"; +import { Routine } from "./routine.server"; + +export const DeleteOldRoomLinksRoutine = new Routine({ + name: "DeleteOldRoomLinks", + func: async () => { + const { numDeletedRows } = await RoomLinkRepository.deleteOld(); + logger.info(`Deleted ${numDeletedRows} old room links`); + }, +}); diff --git a/app/routines/list.server.ts b/app/routines/list.server.ts index 90b630acf..f33069846 100644 --- a/app/routines/list.server.ts +++ b/app/routines/list.server.ts @@ -2,6 +2,7 @@ import { CloseExpiredCommissionsRoutine } from "./closeExpiredCommissions"; import { CloseExpiredContinueVotesRoutine } from "./closeExpiredContinueVotes"; import { DeleteObsoleteMatchVodsRoutine } from "./deleteObsoleteMatchVods"; import { DeleteOldNotificationsRoutine } from "./deleteOldNotifications"; +import { DeleteOldRoomLinksRoutine } from "./deleteOldRoomLinks"; import { DeleteOrphanArtTagsRoutine } from "./deleteOrphanArtTags"; import { NotifyCheckInStartRoutine } from "./notifyCheckInStart"; import { NotifyPlusServerVotingRoutine } from "./notifyPlusServerVoting"; @@ -28,6 +29,7 @@ export const everyHourAt30 = [ SetOldGroupsAsInactiveRoutine, UpdatePatreonDataRoutine, CloseExpiredContinueVotesRoutine, + DeleteOldRoomLinksRoutine, ]; /** List of Routines that should occur daily */