From 3007150aeb6942e5ac51b66ec07426d0f06c218d Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Mon, 13 Jul 2026 19:53:13 +0200 Subject: [PATCH] Fixed parameter binding in alert purge, added log. --- src/alerts.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/alerts.js b/src/alerts.js index 2718133..7d5443d 100755 --- a/src/alerts.js +++ b/src/alerts.js @@ -436,20 +436,20 @@ async function alertSceneReleases() { } async function purgeExpiredAlerts() { - await knex('notifications') + const purgedNotifications = await knex('notifications') .where((builder) => { builder .where('seen', true) .where((seenBuilder) => { seenBuilder .whereNull('seen_at') // marked seen before seen_at was added - .orWhereRaw('seen_at < now() - interval \'? days\'', [config.alerts.seenExpiry]); + .orWhereRaw('seen_at < now() - (?::int * interval \'1 day\')', [config.alerts.seenExpiry]); // '? day' would be interpreted literally }); }) - .orWhereRaw('created_at < now() - interval \'? days\'', [config.alerts.finalExpiry]) // don't accumulate notifications indefinitely + .orWhereRaw('created_at < now() - (?::int * interval \'1 day\')', [config.alerts.finalExpiry]) // don't accumulate notifications indefinitely .delete(); - await knex('alerts') + const purgedAlerts = await knex('alerts') .where('is_expired', true) .whereNotExists( knex('notifications') @@ -458,6 +458,8 @@ async function purgeExpiredAlerts() { .delete(); await knex.schema.refreshMaterializedView('alerts_users_scenes'); + + logger.info(`Purged ${purgedNotifications} notifications and ${purgedAlerts} alerts`); } export function initAlertCron() {