OMDb-Ergebnis-Waehler: Filme vor Episoden, Poster vor ohne, kurz vor lang
Ampel / ampel (push) Failing after 39s

Die unscharfe Suche nahm blind Treffer 1 — fuer "Evangelion" war das
"Episode 110 - ..." (ein Review-Podcast ueber den Film, ohne Poster).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-07-23 21:11:42 +02:00
parent f2d5961c33
commit 241ce3ec78
+12 -1
View File
@@ -66,9 +66,20 @@ class OMDbClient:
).json()
treffer = (suche.get("Search") or []) if suche.get("Response") == "True" else []
if treffer:
# Bester Kandidat statt blind Treffer #1: echte Filme vor
# Episoden/Reviews, mit Poster vor ohne, kurzer Titel vor
# langem (Zusatz-Geschwafel wie "Episode 110 - …" verliert).
def rang(t: Dict):
return (
0 if t.get("Type") == "movie" else (1 if t.get("Type") == "series" else 2),
0 if t.get("Poster") not in (None, "", "N/A") else 1,
len(t.get("Title") or ""),
)
bester = sorted(treffer, key=rang)[0]
data = self.session.get(
OMDB_BASE_URL,
params={"apikey": self.api_key, "i": treffer[0]["imdbID"], "r": "json"},
params={"apikey": self.api_key, "i": bester["imdbID"], "r": "json"},
timeout=10,
).json()
except Exception as e: