Files
rippy/docker/api/cache/keys.py
T
Hitonabi 0ea5f10b31
Ampel / ampel (push) Failing after 12m31s
Fix-Runde nach Review: alle Befunde behoben + echte Tests
- Metadaten-Preview WIEDERHERGESTELLT (Stub ueberschattete echte
  prescan-Implementierung), tote Altmodule geloescht
- Celery update_state statt Phantom-Task/erfundener API
- abcde-Kommando korrigiert (CD-Ripping war nie funktionsfaehig)
- JWT: fester Schluessel Pflicht, echtes Logout, Cleanup nur Abgelaufene
- main.py: crashende Endpoints (Path/secrets/api_keys), year-Bug,
  Admin-Login aus .env
- Ruff gruen (29 Funde), Tests: auth/cache_keys/ripping_helpers,
  Placebo-test_health raus
- SAVEPOINT: offene MakeMKV-Entscheidung SICHTBAR gemacht (Regel B)
2026-07-22 19:31:48 +02:00

50 lines
1.6 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) -> 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}"