diff --git a/docker/api/prescan/prescan.py b/docker/api/prescan/prescan.py index 852ffec..4cc02d5 100644 --- a/docker/api/prescan/prescan.py +++ b/docker/api/prescan/prescan.py @@ -139,9 +139,13 @@ def titel_kandidaten(titel: str) -> List[str]: merke(titel.replace(":", "")) import re as _re merke(_re.sub(r"\([^)]*\)", "", titel)) # Klammer-Zusätze raus + # Iterativ hintere Worte strippen (ARM-Lehre): "Evangelion 2.22" muss + # auch als "Evangelion" gesucht werden — Versions-/Zusatz-Tokens stehen + # fast immer hinten. Begrenzt, damit die API-Anfragen überschaubar bleiben. worte = titel.split() - if len(worte) > 2: - merke(" ".join(worte[:-1])) # letztes Wort strippen + while len(worte) > 1 and len(kandidaten) < 6: + worte = worte[:-1] + merke(" ".join(worte)) return kandidaten @@ -468,5 +472,8 @@ class PreScan: metadata=metadata, tracks=toc.get("tracks", []) ) - cache_set(cache_key, result.to_dict()) + # Nur ECHTE Treffer cachen: ein gecachtes "unknown" würde sonst auch + # nach Key-Eintrag/Fix ewig wieder serviert (Redis ist persistent). + if confidence >= 0.6: + cache_set(cache_key, result.to_dict()) return result