From dcf247fe41653372d655fa238729d453cd42497d Mon Sep 17 00:00:00 2001 From: bskjon Date: Mon, 15 Apr 2024 17:14:50 +0200 Subject: [PATCH] Update to metadata --- apps/pyMetadata/app.py | 22 +++++++++++++--------- apps/pyMetadata/sources/select.py | 7 ++++++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/apps/pyMetadata/app.py b/apps/pyMetadata/app.py index 06abfe2d..9a1e4240 100644 --- a/apps/pyMetadata/app.py +++ b/apps/pyMetadata/app.py @@ -153,11 +153,9 @@ class MessageHandlerThread(threading.Thread): eventId = self.message.value["eventId"] logger.info("Searching for %s", title) - result = self.get_metadata(title, eventId) + result = self.get_metadata(title, baseName, eventId) if (result is None): - logger.info("No result for %s", title) - logger.info("Searching for %s", baseName) - result = self.get_metadata(baseName, eventId) + logger.info("No result for %s or %s", title, baseName) producerMessage = self.compose_message(referenceId=self.message.value["referenceId"], result=result) @@ -177,17 +175,23 @@ class MessageHandlerThread(threading.Thread): else: logger.warn("No status present for %s", self.message.value) - def get_metadata(self, name: str, evnetId: str) -> Optional[DataResult]: + def get_metadata(self, name: str, baseName: str, evnetId: str) -> Optional[DataResult]: result = None logger.info("Checking cache for offloading") cache_result = ResultCache.get(name) - if cache_result: + if cache_result is None: + cache_result = ResultCache.get(baseName) + if cache_result: + logger.info("Cache hit for %s", name) + result = cache_result + else: logger.info("Cache hit for %s", name) result = cache_result - else: - logger.info("Not in cache: %s", name) + + if result is None: + logger.info("Not in cache: %s or %s", name, baseName) logger.info("Searching in sources for information about %s", name) - result: Optional[DataResult] = UseSource(title=name, eventId=evnetId).select_result() + result: Optional[DataResult] = UseSource(title=name, baseName=baseName, eventId=evnetId).select_result() if (result.status == "COMPLETED"): logger.info("Storing response for %s in in-memory cache", name) ResultCache.add(name, result) diff --git a/apps/pyMetadata/sources/select.py b/apps/pyMetadata/sources/select.py index bd8412d7..75c78938 100644 --- a/apps/pyMetadata/sources/select.py +++ b/apps/pyMetadata/sources/select.py @@ -30,9 +30,11 @@ class DataAndScore: class UseSource(): title: str + baseName: str eventId: str - def __init__(self, title, eventId) -> None: + def __init__(self, title, baseName, eventId) -> None: self.title = title + self.baseName = baseName self.eventId = eventId def stripped(self, input_string) -> str: @@ -76,6 +78,9 @@ class UseSource(): def select_result(self) -> Optional[DataResult]: """""" weightResult = self.__perform_search(title=self.title) + baseNameResult = self.__perform_search(title=self.baseName) + weightResult.extend(baseNameResult) + scored = self.__calculate_score(title=self.title, weightData=weightResult) scored.sort(key=lambda x: x.score, reverse=True)