feat(ui): SoC Refactoring & Config Validation
- Theme Context ausgelagert (ThemeContext.tsx + useDarkMode.ts) - Config Validation mit TMDB-API-Key Pflicht (config_validation.py) - Cache Key Centralization (cache/keys.py) - CD-Ripping mit abcde implementiert (Worker) - Docker Compose mit Healthchecks & LOG_LEVEL - ROADMAP.md & SAVEPOINT.md aktualisiert
This commit is contained in:
Vendored
+49
@@ -0,0 +1,49 @@
|
||||
"""Zentrale Cache-Key-Definitionen für Rippy API."""
|
||||
|
||||
from typing import Final
|
||||
|
||||
# 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) -> str:
|
||||
"""Generiere Cache-Key für Pre-Scan."""
|
||||
prefix = PRESCAN_AUDIO_PREFIX if is_audio else PRESCAN_VIDEO_PREFIX
|
||||
return f"{prefix}{device_path}"
|
||||
|
||||
|
||||
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}"
|
||||
Reference in New Issue
Block a user