diff --git a/server/entertainment_decider/extractors/collection/__init__.py b/server/entertainment_decider/extractors/collection/__init__.py index 0d090d6..b07e0bd 100644 --- a/server/entertainment_decider/extractors/collection/__init__.py +++ b/server/entertainment_decider/extractors/collection/__init__.py @@ -1,6 +1,7 @@ from __future__ import annotations -from typing import Dict +from typing import Dict, Tuple + from ...config import app_config from ...models import MediaCollection @@ -39,11 +40,16 @@ def collection_update( ) -def collection_extract_uri(uri: str) -> MediaCollection: - elem: MediaCollection = CollectionExtractor.check_uri(uri) - ex = collection_expect_extractor(uri) +def collection_extract_uri_new(uri: str) -> Tuple[bool, MediaCollection]: + elem = CollectionExtractor.check_uri(uri) if not elem: - elem = ex.extract_and_store(uri) - else: + return True, collection_expect_extractor(uri).extract_and_store(uri) + return False, elem + + +def collection_extract_uri(uri: str) -> MediaCollection: + new_obj, elem = collection_extract_uri_new(uri) + if not new_obj: + ex = collection_expect_extractor(uri) ex.update_object(elem, check_cache_expired=False) return elem