Metadaten-Feinschliff: Wort-Strip-Degradation + kein Caching von "unknown"
Ampel / ampel (push) Failing after 40s
Ampel / ampel (push) Failing after 40s
- titel_kandidaten strippt hintere Worte iterativ bis auf eins
("Evangelion 2.22" wird auch als "Evangelion" gesucht — OMDb braucht das)
- Nur Treffer ab Confidence 0.6 landen im Redis-Cache: ein gecachtes
"unknown" wurde sonst auch nach Key-Eintrag ewig wieder serviert
(Redis ist persistent; Alt-Eintraege auf der VM geloescht)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -139,9 +139,13 @@ def titel_kandidaten(titel: str) -> List[str]:
|
|||||||
merke(titel.replace(":", ""))
|
merke(titel.replace(":", ""))
|
||||||
import re as _re
|
import re as _re
|
||||||
merke(_re.sub(r"\([^)]*\)", "", titel)) # Klammer-Zusätze raus
|
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()
|
worte = titel.split()
|
||||||
if len(worte) > 2:
|
while len(worte) > 1 and len(kandidaten) < 6:
|
||||||
merke(" ".join(worte[:-1])) # letztes Wort strippen
|
worte = worte[:-1]
|
||||||
|
merke(" ".join(worte))
|
||||||
return kandidaten
|
return kandidaten
|
||||||
|
|
||||||
|
|
||||||
@@ -468,5 +472,8 @@ class PreScan:
|
|||||||
metadata=metadata,
|
metadata=metadata,
|
||||||
tracks=toc.get("tracks", [])
|
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
|
return result
|
||||||
|
|||||||
Reference in New Issue
Block a user