diff --git a/apps/pyMetadata/app.py b/apps/pyMetadata/app.py index ea9a284d..06abfe2d 100644 --- a/apps/pyMetadata/app.py +++ b/apps/pyMetadata/app.py @@ -150,12 +150,14 @@ class MessageHandlerThread(threading.Thread): baseName = messageData["sanitizedName"] title = messageData["title"] + eventId = self.message.value["eventId"] + logger.info("Searching for %s", title) - result = self.get_metadata(title) + result = self.get_metadata(title, eventId) if (result is None): logger.info("No result for %s", title) logger.info("Searching for %s", baseName) - result = self.get_metadata(baseName) + result = self.get_metadata(baseName, eventId) producerMessage = self.compose_message(referenceId=self.message.value["referenceId"], result=result) @@ -175,7 +177,7 @@ class MessageHandlerThread(threading.Thread): else: logger.warn("No status present for %s", self.message.value) - def get_metadata(self, name: str) -> Optional[DataResult]: + def get_metadata(self, name: str, evnetId: str) -> Optional[DataResult]: result = None logger.info("Checking cache for offloading") cache_result = ResultCache.get(name) @@ -185,7 +187,7 @@ class MessageHandlerThread(threading.Thread): else: logger.info("Not in cache: %s", name) logger.info("Searching in sources for information about %s", name) - result: Optional[DataResult] = UseSource(title=name).select_result() + result: Optional[DataResult] = UseSource(title=name, 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 5ceaab68..051d0416 100644 --- a/apps/pyMetadata/sources/select.py +++ b/apps/pyMetadata/sources/select.py @@ -7,6 +7,7 @@ from .imdb import metadata as ImdbMetadata from .mal import metadata as MalMetadata from fuzzywuzzy import fuzz from unidecode import unidecode +import json logger = logging.getLogger(__name__) @@ -23,7 +24,8 @@ class DataAndScore: class UseSource(): title: str - def __init__(self, title) -> None: + evnetId: str + def __init__(self, title, eventId) -> None: self.title = title def __perform_search(self, title)-> List[WeightedData]: @@ -63,13 +65,21 @@ class UseSource(): scored = self.__calculate_score(title=self.title, weightData=weightResult) scored.sort(key=lambda x: x.score, reverse=True) + try: + jsr = json.dumps(scored, indent=4) + with open(f"./logs/{self.evnetId}.json", "w", encoding="utf-8") as f: + f.write(jsr) + except: + logger.info("Couldn't dump log..") + + try: titles: List[str] = [] for wd in weightResult: titles.append(wd.result.data.title) titles.extend(wd.result.data.altTitle) - joinedTitles = "\n\t".join(titles) - logger.info(f"Title {self.title} gave the result: {joinedTitles} \nTitle selected: \n\t{scored[0].result.data.title}\n") + joinedTitles = "\n\t" + "\n\t".join(titles) + logger.info(f"[Title]: {self.title} gave the result: {joinedTitles} \nTitle selected: \n\t{scored[0].result.data.title}\n") except: pass diff --git a/dockerfiles/Python b/dockerfiles/Python index e68bcbdf..3a401856 100644 --- a/dockerfiles/Python +++ b/dockerfiles/Python @@ -14,6 +14,8 @@ RUN pip3 install -r ./requirements.txt # Kopier resten av prosjektfilene COPY ./apps/${MODULE_NAME}/ . +RUN mkdir ./apps/logs + # Start applikasjonen CMD ["python3", "-u", "app.py"] diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/parsing/FileNameParser.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/parsing/FileNameParser.kt index 83a2073b..6bdd460b 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/parsing/FileNameParser.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/parsing/FileNameParser.kt @@ -81,8 +81,10 @@ class FileNameParser(val fileName: String) { /** * */ - fun removeResolutionAndTags(text: String): String { - return Regex("(.*?)(?=\\d+[pk]\\b)").replace(text, " ") + fun removeResolutionAndTags(input: String): String { + var text = Regex("(?i)(\\d+[pk]\\b|(hd|uhd))", RegexOption.IGNORE_CASE).replace(input, " ") + text = Regex("(?i)(\\s(bluray|laserdisc|dvd|web))", RegexOption.IGNORE_CASE).replace(text, " ") + return text }