diff --git a/docker/api/clients/omdb.py b/docker/api/clients/omdb.py index 996c3ec..e00c48f 100644 --- a/docker/api/clients/omdb.py +++ b/docker/api/clients/omdb.py @@ -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: