From 85f352b14f5ef09655766720b2c6cdef290efb2e Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Thu, 23 Jul 2026 21:13:03 +0200 Subject: [PATCH] OMDb-Qualitaets-Gate: ohne Poster UND Plot = Nicht-Treffer, Kette laeuft weiter Der Datenmuell-Eintrag ("Episode 110 - ...") war der EINZIGE s=-Treffer fuer den vollen Titel und brach die Kandidaten-Kette bei 0.8 ab, bevor "Evangelion" allein probiert wurde. N/A-Werte werden jetzt normalisiert. Co-Authored-By: Claude Fable 5 --- docker/api/clients/omdb.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/docker/api/clients/omdb.py b/docker/api/clients/omdb.py index e00c48f..baefda2 100644 --- a/docker/api/clients/omdb.py +++ b/docker/api/clients/omdb.py @@ -89,16 +89,29 @@ class OMDbClient: if data.get("Response") != "True": return None + plot = data.get("Plot", "") + if plot == "N/A": + plot = "" + poster = data.get("Poster", "") + if poster == "N/A": + poster = "" + + # Qualitäts-Gate: Einträge ohne Poster UND ohne Beschreibung sind + # fast immer Datenmüll (Review-Episoden etc.) — als Nicht-Treffer + # werten, damit die Kandidaten-Kette weiterprobiert. + if not poster and not plot: + return None + ergebnis = { "type": "tv" if data.get("Type") == "series" else "movie", "id": data.get("imdbID", ""), "title": data.get("Title", title), "year": parse_year(data.get("Year", "")), - "overview": data.get("Plot", ""), - "poster_path": data.get("Poster", "") if data.get("Poster") != "N/A" else "", + "overview": plot, + "poster_path": poster, "backdrop_path": "", "runtime": parse_runtime_minutes(data.get("Runtime", "")), - "genres": [g.strip() for g in data.get("Genre", "").split(",") if g.strip()], + "genres": [g.strip() for g in data.get("Genre", "").split(",") if g.strip() and g.strip() != "N/A"], "source": "omdb", } cache_set(cache_key, ergebnis)