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"]
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 is None:
cache_result = ResultCache.get(baseName)
if cache_result:
logger.info("Cache hit for %s", name)
result = cache_result
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)
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)

View File

@ -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)