From 6ab8781520b0abf3f8758a8d6b2fc19aa6905475 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Sat, 5 Nov 2022 14:37:56 +0100 Subject: [PATCH] Add way to inject object while extracting To save extracting work, if e.g. updating a collection also receives data about medias in it (which then do not need any more requests) --- server/entertainment_decider/extractors/generic.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/entertainment_decider/extractors/generic.py b/server/entertainment_decider/extractors/generic.py index ed4d988..b149c0b 100644 --- a/server/entertainment_decider/extractors/generic.py +++ b/server/entertainment_decider/extractors/generic.py @@ -175,6 +175,14 @@ class GeneralExtractor(Generic[E, T]): logging.debug(f"Updating info for media: {data!r}") return self._update_object(object, data) + def inject_object(self, data: ExtractedData[T]) -> E: + object = self._load_object(data) + data = self._extract_required(data) + if not object: + logging.debug(f"Store info for object: {data!r}") + object = self._create_object(data) + return self._update_object(object, data) + def store_object(self, data: ExtractedData[T]) -> E: object = self._load_object(data) if object: