feat: KöPi Tages-Cron um 06:00 Uhr mit Pushover-Benachrichtigung bei Angebotsänderung
This commit is contained in:
@@ -256,6 +256,7 @@ server.listen(4000, () => console.log('🚀 Dicken Dock läuft auf Port 4000'));
|
||||
|
||||
// ── Push-Zeitplaner Hintergrund-Job ──────────────────────────────────────────
|
||||
const db = require('./db');
|
||||
const koepiRoutes = require('./tools/koepi/routes');
|
||||
|
||||
async function sendPushoverMsg(userKey, appToken, message, opts = {}) {
|
||||
try {
|
||||
@@ -296,6 +297,20 @@ async function runScheduler() {
|
||||
console.log(`✓ Push gesendet an user ${row.user_id}: "${row.message}" (fällig: ${row.scheduled_at})`);
|
||||
}
|
||||
} catch(e) { console.error('Push-Job Fehler:', e.message); }
|
||||
|
||||
// KöPi Tages-Check: täglich um 06:00 (localtime), Duplikatschutz über admin_settings-Datum
|
||||
try {
|
||||
const now = db.prepare("SELECT datetime('now','localtime') as t").get().t;
|
||||
const date = now.slice(0, 10);
|
||||
const time = now.slice(11, 16);
|
||||
if (time === '06:00') {
|
||||
const lastRunDate = db.prepare("SELECT value FROM admin_settings WHERE key='koepi_cron_last_date'").get()?.value;
|
||||
if (lastRunDate !== date) {
|
||||
db.prepare("INSERT OR REPLACE INTO admin_settings (key, value) VALUES ('koepi_cron_last_date', ?)").run(date);
|
||||
await koepiRoutes.runDailyCheck();
|
||||
}
|
||||
}
|
||||
} catch(e) { console.error('KöPi-Cron Fehler:', e.message); }
|
||||
}
|
||||
|
||||
console.log(`⏰ Push-Scheduler aktiv – nächste Prüfung in ${Math.round(msToNextMinute/1000)}s`);
|
||||
|
||||
Reference in New Issue
Block a user