feat: täglicher Abgleich mit TMDB

Frischt laufende Serien auf, meldet neue Episoden und neu verfügbare
Watchlist-Titel, räumt Papierkorb und abgelaufene Sitzungen.

Grundsatz: Der Lauf darf nie an einem einzelnen Titel scheitern. Fehler werden
gezählt und protokolliert, der Lauf macht weiter.

Neue Episoden werden nur gemeldet, wenn sie zeitlich nicht in ferner
Vergangenheit liegen — sonst löste der erste Abgleich einer alten Serie hundert
Meldungen aus.

Der Zeitplan ist ein einfacher Timer statt einer Cron-Bibliothek: Flimmer
braucht genau einen täglichen Lauf. Wer mehr will, stösst /api/cron/sync von
aussen an.
This commit is contained in:
Florian Wilde
2026-09-01 20:24:47 +02:00
parent f49ac17922
commit 969353ab32
3 changed files with 354 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
/**
* Wird von Next beim Start des Servers einmal ausgeführt.
*
* Hier hängt der eingebaute Zeitplan für den täglichen Abgleich. Er läuft nur
* in der Node-Laufzeit (nicht im Edge-Runtime) und nur, wenn ENABLE_SCHEDULER
* gesetzt ist — bei mehreren App-Instanzen soll ihn nur eine übernehmen.
*/
export async function register() {
if (process.env.NEXT_RUNTIME !== "nodejs") return;
const { startScheduler } = await import("./lib/sync");
startScheduler();
}