Update to metadata

This commit is contained in:
bskjon 2024-04-15 17:14:50 +02:00
parent 9f5946b2c7
commit dcf247fe41
2 changed files with 19 additions and 10 deletions

View File

@ -153,11 +153,9 @@ class MessageHandlerThread(threading.Thread):
eventId = self.message.value["eventId"] eventId = self.message.value["eventId"]
logger.info("Searching for %s", title) logger.info("Searching for %s", title)
result = self.get_metadata(title, eventId) result = self.get_metadata(title, baseName, eventId)
if (result is None): if (result is None):
logger.info("No result for %s", title) logger.info("No result for %s or %s", title, baseName)
logger.info("Searching for %s", baseName)
result = self.get_metadata(baseName, eventId)
producerMessage = self.compose_message(referenceId=self.message.value["referenceId"], result=result) producerMessage = self.compose_message(referenceId=self.message.value["referenceId"], result=result)
@ -177,17 +175,23 @@ class MessageHandlerThread(threading.Thread):
else: else:
logger.warn("No status present for %s", self.message.value) 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 result = None
logger.info("Checking cache for offloading") logger.info("Checking cache for offloading")
cache_result = ResultCache.get(name) cache_result = ResultCache.get(name)
if cache_result is None:
cache_result = ResultCache.get(baseName)
if cache_result: if cache_result:
logger.info("Cache hit for %s", name) logger.info("Cache hit for %s", name)
result = cache_result result = cache_result
else: else:
logger.info("Not in cache: %s", name) logger.info("Cache hit for %s", name)
result = cache_result
if result is None:
logger.info("Not in cache: %s or %s", name, baseName)
logger.info("Searching in sources for information about %s", name) 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"): if (result.status == "COMPLETED"):
logger.info("Storing response for %s in in-memory cache", name) logger.info("Storing response for %s in in-memory cache", name)
ResultCache.add(name, result) ResultCache.add(name, result)

View File

@ -30,9 +30,11 @@ class DataAndScore:
class UseSource(): class UseSource():
title: str title: str
baseName: str
eventId: str eventId: str
def __init__(self, title, eventId) -> None: def __init__(self, title, baseName, eventId) -> None:
self.title = title self.title = title
self.baseName = baseName
self.eventId = eventId self.eventId = eventId
def stripped(self, input_string) -> str: def stripped(self, input_string) -> str:
@ -76,6 +78,9 @@ class UseSource():
def select_result(self) -> Optional[DataResult]: def select_result(self) -> Optional[DataResult]:
"""""" """"""
weightResult = self.__perform_search(title=self.title) 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 = self.__calculate_score(title=self.title, weightData=weightResult)
scored.sort(key=lambda x: x.score, reverse=True) scored.sort(key=lambda x: x.score, reverse=True)