From 354ba6256afd2c377a37fb5c345ff901bacfa5bf Mon Sep 17 00:00:00 2001 From: axtrat Date: Mon, 25 Aug 2025 17:25:12 +0200 Subject: [PATCH] fix: Normalized some titles --- viu_media/assets/normalizer.json | 7 +++++++ .../libs/provider/anime/animeunity/mappers.py | 19 +++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/viu_media/assets/normalizer.json b/viu_media/assets/normalizer.json index e662e0b..41a62df 100644 --- a/viu_media/assets/normalizer.json +++ b/viu_media/assets/normalizer.json @@ -13,5 +13,12 @@ "Azumanga Daiou The Animation": "Azumanga Daioh", "Mairimashita! Iruma-kun 2nd Season": "Mairimashita! Iruma-kun 2", "Mairimashita! Iruma-kun 3rd Season": "Mairimashita! Iruma-kun 3" + }, + "animeunity": { + "Kaiju No. 8": "Kaiju No.8", + "Naruto Shippuden": "Naruto: Shippuden", + "Psycho-Pass: Sinners of the System Case.1 - Crime and Punishment": "PSYCHO-PASS Sinners of the System: Case.1 Crime and Punishment", + "Psycho-Pass: Sinners of the System Case.2 - First Guardian": "PSYCHO-PASS Sinners of the System: Case.2 First Guardian", + "Psycho-Pass: Sinners of the System Case.3 - On the Other Side of Love and Hate": "PSYCHO-PASS Sinners of the System: Case.3 Beyond the Pale of Vengeance" } } diff --git a/viu_media/libs/provider/anime/animeunity/mappers.py b/viu_media/libs/provider/anime/animeunity/mappers.py index 0891fdf..e3b5a34 100644 --- a/viu_media/libs/provider/anime/animeunity/mappers.py +++ b/viu_media/libs/provider/anime/animeunity/mappers.py @@ -36,7 +36,7 @@ def map_to_search_result( return None return SearchResult( id=str(data["id"]), - title=get_real_title(data), + title=get_titles(data)[0] if get_titles(data) else "Unknown", episodes=AnimeEpisodes( sub=( list(map(str, range(1, get_episodes_count(data) + 1))) @@ -49,6 +49,7 @@ def map_to_search_result( else [] ), ), + other_titles=get_titles(data), score=data["score"], poster=data["imageurl"], year=data["date"], @@ -105,16 +106,18 @@ def map_to_server( ) -def get_real_title(record: dict) -> str: +def get_titles(data: dict) -> list[str]: """ Return the most appropriate title from the record. """ - if record.get("title_eng"): - return record["title_eng"] - elif record.get("title"): - return record["title"] - else: - return record.get("title_it", "") + titles = [] + if data.get("title_eng"): + titles.append(data["title_eng"]) + if data.get("title"): + titles.append(data["title"]) + if data.get("title_it"): + titles.append(data["title_it"]) + return titles def get_episodes_count(record: dict) -> int: