diff --git a/backend/src/media_library_viewer_api/config.py b/backend/src/media_library_viewer_api/config.py index 42bede9..4dc5036 100644 --- a/backend/src/media_library_viewer_api/config.py +++ b/backend/src/media_library_viewer_api/config.py @@ -21,15 +21,6 @@ logger = logging.getLogger(__name__) class Settings(BaseSettings): """Flat application settings read from env vars / .env file.""" - # Jellyfin (legacy fallback only; machine settings are preferred) - jellyfin_url: str = "" - jellyfin_api_key: str = "" - jellyfin_user_id: str = "" - - # Jellyseerr (legacy fallback only; machine settings are preferred) - jellyseerr_url: str = "" - jellyseerr_api_key: str = "" - # Logging log_level: str = "INFO" diff --git a/backend/src/media_library_viewer_api/dependencies.py b/backend/src/media_library_viewer_api/dependencies.py index 86d556d..00e24a4 100644 --- a/backend/src/media_library_viewer_api/dependencies.py +++ b/backend/src/media_library_viewer_api/dependencies.py @@ -129,17 +129,13 @@ def _resolve_machine(service: str, request: Request | None = None) -> dict[str, def get_jellyfin_client(request: Request = None) -> JellyfinClient: - """Return a Jellyfin client for the selected machine or legacy env fallback.""" + """Return a Jellyfin client for the selected machine.""" machine = get_settings_store().get_machine_config(_request_machine_id(request)) or _resolve_machine("jellyfin", request) if machine and machine.get("jellyfin_url") and machine.get("jellyfin_api_key"): cache_key = (machine["id"], machine["jellyfin_url"], machine.get("jellyfin_api_key") or "") return _jellyfin_client_for(cache_key) - settings = get_settings() - if not settings.jellyfin_url or not settings.jellyfin_api_key: - raise RuntimeError("No Jellyfin machine is configured and JELLYFIN_URL/API_KEY are not set") - logger.info("Falling back to legacy Jellyfin env settings") - return _jellyfin_client_for(("legacy", settings.jellyfin_url, settings.jellyfin_api_key)) + raise RuntimeError("No Jellyfin machine is configured. Add a machine with jellyfin_url and jellyfin_api_key in Settings.") def get_jellyseerr_client(request: Request = None) -> JellyseerrClient | None: @@ -148,16 +144,8 @@ def get_jellyseerr_client(request: Request = None) -> JellyseerrClient | None: if machine and machine.get("jellyseerr_url") and machine.get("jellyseerr_api_key"): return JellyseerrClient(machine["jellyseerr_url"], machine.get("jellyseerr_api_key") or "") - settings = get_settings() - if not settings.jellyseerr_url or not settings.jellyseerr_api_key: - logger.info( - "Jellyseerr client not configured (url=%s, api_key=%s)", - "set" if settings.jellyseerr_url else "missing", - "set" if settings.jellyseerr_api_key else "missing", - ) - return None - logger.info("Falling back to legacy Jellyseerr env settings") - return JellyseerrClient(settings.jellyseerr_url, settings.jellyseerr_api_key) + logger.info("Jellyseerr client not configured (no machine with jellyseerr_url and jellyseerr_api_key)") + return None def get_ssh_client(request: Request = None): @@ -232,9 +220,6 @@ def get_user_id(request: Request = None) -> str: machine = get_settings_store().get_machine_config(_request_machine_id(request)) or _resolve_machine("jellyfin", request) if machine and machine.get("jellyfin_user_id"): return str(machine["jellyfin_user_id"]) - settings = get_settings() - if settings.jellyfin_user_id: - return settings.jellyfin_user_id client = get_jellyfin_client(request) users = client.users() if not users: diff --git a/backend/src/media_library_viewer_api/logging_utils.py b/backend/src/media_library_viewer_api/logging_utils.py index 814c72d..fc922da 100644 --- a/backend/src/media_library_viewer_api/logging_utils.py +++ b/backend/src/media_library_viewer_api/logging_utils.py @@ -44,11 +44,6 @@ def describe_settings(settings: object) -> dict[str, str]: "oidc_issuer_url": _sanitize_url(getattr(settings, "oidc_issuer_url", "")), "oidc_audience": getattr(settings, "oidc_audience", "") or "", "oidc_jwks_url": _sanitize_url(getattr(settings, "oidc_jwks_url", "")), - "jellyfin_url": _sanitize_url(getattr(settings, "jellyfin_url", "")), - "jellyfin_api_key": "set" if getattr(settings, "jellyfin_api_key", "") else "missing", - "jellyfin_user_id": getattr(settings, "jellyfin_user_id", "") or "", - "jellyseerr_url": _sanitize_url(getattr(settings, "jellyseerr_url", "")), - "jellyseerr_api_key": "set" if getattr(settings, "jellyseerr_api_key", "") else "missing", "ssh_host": getattr(settings, "ssh_host", "") or "", "ssh_username": getattr(settings, "ssh_username", "") or "", "ssh_port": str(getattr(settings, "ssh_port", 22) or 22), diff --git a/backend/src/media_library_viewer_api/services/settings_store.py b/backend/src/media_library_viewer_api/services/settings_store.py index 8016779..aa4d558 100644 --- a/backend/src/media_library_viewer_api/services/settings_store.py +++ b/backend/src/media_library_viewer_api/services/settings_store.py @@ -42,11 +42,11 @@ def _default_local_machine() -> dict[str, Any]: "password": "", "media_root": settings.media_root, "path_prefix": settings.path_prefix, - "jellyfin_url": settings.jellyfin_url, - "jellyfin_user_id": settings.jellyfin_user_id, - "jellyfin_api_key": settings.jellyfin_api_key or "", - "jellyseerr_url": settings.jellyseerr_url, - "jellyseerr_api_key": settings.jellyseerr_api_key or "", + "jellyfin_url": "", + "jellyfin_user_id": "", + "jellyfin_api_key": "", + "jellyseerr_url": "", + "jellyseerr_api_key": "", "notes": "", } diff --git a/backend/tests/test_config.py b/backend/tests/test_config.py index 446a440..97c3cb6 100644 --- a/backend/tests/test_config.py +++ b/backend/tests/test_config.py @@ -11,8 +11,6 @@ class TestSettings: settings = Settings(_env_file=None) assert settings.ssh_host == "" assert settings.ssh_port == 22 - assert settings.jellyfin_url == "" - assert settings.jellyseerr_url == "" assert settings.log_level == "INFO" assert settings.remote_media_root == "" assert settings.ssh_key_directory == "" @@ -21,10 +19,6 @@ class TestSettings: def test_from_env(self): env = { - "JELLYFIN_URL": "https://test.example.com", - "JELLYFIN_API_KEY": "key123", - "JELLYSEERR_URL": "https://requests.example.com", - "JELLYSEERR_API_KEY": "seerr123", "LOG_LEVEL": "DEBUG", "SSH_HOST": "192.168.1.1", "SSH_USERNAME": "testuser", @@ -33,10 +27,6 @@ class TestSettings: } with patch.dict(os.environ, env, clear=True): settings = Settings(_env_file=None) - assert settings.jellyfin_url == "https://test.example.com" - assert settings.jellyfin_api_key == "key123" - assert settings.jellyseerr_url == "https://requests.example.com" - assert settings.jellyseerr_api_key == "seerr123" assert settings.log_level == "DEBUG" assert settings.ssh_host == "192.168.1.1" assert settings.ssh_username == "testuser"