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(":", ""))
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user