7652afe955
Ampel / ampel (push) Failing after 28s
- Pre-Scan verlor den erkannten Typ (BDs hiessen immer "DVD"): scan() reicht disc_type jetzt in die Zweige durch - GIFTIG: Cache-Key nur aus Geraetepfad — die naechste Disc im selben Laufwerk haette die Metadaten der vorherigen geerbt. Key enthaelt jetzt einen Disc-Fingerabdruck (Label|Groesse) - Worker-Faehigkeiten: import caps auf Modulebene — im worker_ready-Signal war /app nicht mehr im sys.path (ModuleNotFoundError im Deploy-Log) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
"""Zentrale Cache-Key-Definitionen für Rippy API."""
|
|
|
|
from typing import Dict, Final, Optional
|
|
|
|
# Pre-Scan Keys
|
|
PRESCAN_AUDIO_PREFIX: Final[str] = "prescan:audio:"
|
|
PRESCAN_VIDEO_PREFIX: Final[str] = "prescan:video:"
|
|
PRESCAN_KEY_TEMPLATE: Final[str] = "{prefix}{device_path}"
|
|
|
|
# Metadaten Keys
|
|
METADATA_TMDB_PREFIX: Final[str] = "tmdb:"
|
|
METADATA_MUSICBRAINZ_PREFIX: Final[str] = "musicbrainz:"
|
|
METADATA_THETVDB_PREFIX: Final[str] = "thetvdb:"
|
|
|
|
# Confirmed Metadata
|
|
CONFIRMED_METADATA_PREFIX: Final[str] = "confirmed:"
|
|
CONFIRMED_KEY_TEMPLATE: Final[str] = "{prefix}{title}:{year}"
|
|
|
|
# Device Info
|
|
DEVICE_INFO_PREFIX: Final[str] = "device:info:"
|
|
DEVICE_INFO_KEY_TEMPLATE: Final[str] = "{prefix}{device_path}"
|
|
|
|
# Job Results
|
|
JOB_RESULTS_PREFIX: Final[str] = "job:results:"
|
|
JOB_RESULTS_KEY_TEMPLATE: Final[str] = "{prefix}{job_id}"
|
|
|
|
# Fallback Values (für Fallback-UI)
|
|
FALLBACK_CONFIDENCE: Final[float] = 0.3
|
|
FALLBACK_YEAR: Final[int] = 2000
|
|
FALLBACK_TITLE: Final[str] = "Unbekannter Titel"
|
|
|
|
|
|
def generate_prescan_key(device_path: str, is_audio: bool = False, fingerprint: str = "") -> str:
|
|
"""Generiere Cache-Key für Pre-Scan.
|
|
|
|
fingerprint (Label+Größe der DISC) ist Pflichtbestandteil seit 23.07.:
|
|
Ein Key nur aus dem Gerätepfad servierte der NÄCHSTEN Disc im selben
|
|
Laufwerk die Metadaten der vorherigen.
|
|
"""
|
|
prefix = PRESCAN_AUDIO_PREFIX if is_audio else PRESCAN_VIDEO_PREFIX
|
|
return f"{prefix}{device_path}:{fingerprint}"
|
|
|
|
|
|
def generate_confirmed_key(title: str, year: Optional[int] = None) -> str:
|
|
"""Generiere Cache-Key für bestätigte Metadaten."""
|
|
year_str = str(year) if year else "0"
|
|
return f"confirmed:{title}:{year_str}"
|
|
|
|
|
|
def generate_tmdb_key(endpoint: str, params: Optional[Dict] = None) -> str:
|
|
"""Generiere Cache-Key für TMDB API."""
|
|
if params:
|
|
return f"{METADATA_TMDB_PREFIX}{endpoint}:{str(params)}"
|
|
return f"{METADATA_TMDB_PREFIX}{endpoint}"
|