This commit is contained in:
team3
2026-09-17 15:40:28 +02:00
parent a1684cf54f
commit ea54a86db4
30 changed files with 3680 additions and 989 deletions

View File

@@ -116,10 +116,25 @@ def existing_netflix_ids(conn):
return {row["id"]: row["netflix_id"] for row in rows}
# Sammlung, Rad und Gesehen zeigen auch Filme, die nie auf Netflix liefen.
# Deren Daten stehen trotzdem im Katalog — sonst blieben die Karten leer.
BENUTZT = ("wishlist", "suggestions", "watched")
def benutzte_ids(conn):
"""Alle movie_ids, an denen jemand hängt."""
teile = " UNION ".join(f"SELECT movie_id FROM {t}" for t in BENUTZT)
return {r[0] for r in conn.execute(teile)}
def drop_missing(conn, keep_ids):
"""Was weder auf Netflix läuft noch im Kanon steht, fliegt raus."""
"""Was weder auf Netflix läuft noch im Kanon steht, fliegt raus.
Ausgenommen, was jemand gemerkt, vorgeschlagen oder geschaut hat: die
Karten dazu holen ihre Daten aus dieser Tabelle.
"""
current = {r["id"] for r in conn.execute("SELECT id FROM movies").fetchall()}
gone = current - set(keep_ids)
gone = current - set(keep_ids) - benutzte_ids(conn)
if gone:
conn.executemany("DELETE FROM movies WHERE id = ?", [(i,) for i in gone])
return len(gone)