"""API-Konfiguration.""" from pydantic_settings import BaseSettings from pydantic import Field from typing import Optional class Settings(BaseSettings): """Rippy API Settings.""" # API Keys tmdb_api_key: Optional[str] = Field(default=None, description="TMDB API Key (Pflicht für Metadaten-Lookup)") thetvdb_api_key: Optional[str] = Field(default=None, description="TVDb API Key (Optional)") omdb_api_key: Optional[str] = Field(default=None, description="OMDb API Key (Fallback-Quelle, optional)") musicbrainz_user: Optional[str] = Field(default=None, description="MusicBrainz User (Optional)") # Cache cache_ttl: int = Field(default=86400, ge=3600, le=604800, description="Cache TTL in Sekunden (1h - 7d)") # Ripping rip_output_dir: str = Field(default="/app/media", description="Basisverzeichnis für Ripping-Ergebnisse") temp_dir: str = Field(default="/app/temp", description="Temp-Verzeichnis für Ripping") # Logging log_level: str = Field(default="INFO", pattern="^(DEBUG|INFO|WARNING|ERROR|CRITICAL)$", description="Log Level") # JWT/Admin-Login entfernt (Commander-Entscheid 24.07.2026): Rippy ist # Heimnetz-only, es gab nie einen Login-Flow im UI — siehe KONZEPT §10. class Config: env_file = ".env" env_file_encoding = "utf-8" settings = Settings()