diff --git a/scanner/providers/provider.py b/scanner/providers/provider.py index 6f4dedd4..9c18722b 100644 --- a/scanner/providers/provider.py +++ b/scanner/providers/provider.py @@ -3,6 +3,8 @@ from aiohttp import ClientSession from abc import abstractmethod, abstractproperty from typing import Optional, TypeVar +from providers.utils import ProviderError + from .types.episode import Episode, PartialShow from .types.show import Show from .types.movie import Movie @@ -22,6 +24,11 @@ class Provider: if tmdb: providers.append(TheMovieDatabase(client, tmdb)) + if not any(providers): + raise ProviderError( + "No provider configured. You probably forgot to specify an API Key" + ) + return providers @abstractproperty diff --git a/scanner/scanner/__init__.py b/scanner/scanner/__init__.py index feaf6ec1..bbed00bc 100644 --- a/scanner/scanner/__init__.py +++ b/scanner/scanner/__init__.py @@ -1,3 +1,4 @@ +from providers.utils import ProviderError from .scanner import Scanner from .monitor import monitor @@ -36,7 +37,10 @@ async def main(): *args, key_transformer=jsons.KEY_TRANSFORMER_CAMELCASE, **kwargs ), ) as client: - scanner = Scanner(client, languages=languages.split(","), api_key=api_key) - await scanner.scan(path) - logging.info("Scan finished. Starting to monitor...") - await monitor(path, scanner) + try: + scanner = Scanner(client, languages=languages.split(","), api_key=api_key) + await scanner.scan(path) + logging.info("Scan finished. Starting to monitor...") + await monitor(path, scanner) + except ProviderError as e: + logging.error(e)