From bc480cc398ee7676b1809ce835bdf5340388d3f7 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 19 Feb 2024 17:45:49 +0100 Subject: [PATCH 1/3] Fix tmdb absolute with long running animes (one-piece, naruto...) --- .../implementations/themoviedatabase.py | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/scanner/providers/implementations/themoviedatabase.py b/scanner/providers/implementations/themoviedatabase.py index c6a8a4f0e..d0ea8d669 100644 --- a/scanner/providers/implementations/themoviedatabase.py +++ b/scanner/providers/implementations/themoviedatabase.py @@ -493,13 +493,21 @@ async def identify_episode( absolute = await self.get_absolute_number(show_id, season, episode_nbr) async def for_language(lng: str) -> Episode: - episode = await self.get( - f"tv/{show_id}/season/{season}/episode/{episode_nbr}", - params={ - "language": lng, - }, - not_found_fail=f"Could not find episode {episode_nbr} of season {season} of serie {name}", - ) + try: + episode = await self.get( + f"tv/{show_id}/season/{season}/episode/{episode_nbr}", + params={ + "language": lng, + }, + ) + except: + episode = await self.get( + f"tv/{show_id}/season/{season}/episode/{absolute}", + params={ + "language": lng, + }, + not_found_fail=f"Could not find episode {episode_nbr} of season {season} of serie {name} (absolute: {absolute})", + ) logging.debug("TMDb responded: %s", episode) ret = Episode( From 2d174c82d44c0f8ba7dc925c40a8b9fc9320654a Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 19 Feb 2024 17:46:04 +0100 Subject: [PATCH 2/3] Fix xem overrides when no episodes connections exist --- scanner/providers/implementations/thexem.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scanner/providers/implementations/thexem.py b/scanner/providers/implementations/thexem.py index af0945a50..565ae1fc4 100644 --- a/scanner/providers/implementations/thexem.py +++ b/scanner/providers/implementations/thexem.py @@ -65,7 +65,7 @@ async def get_show_map( ret = await r.json() if "data" not in ret or ret["result"] == "failure": logging.error("Could not fetch xem mapping. Error: %s", ret["message"]) - raise ProviderError("Could not fetch xem mapping") + return [] return ret["data"] async def get_show_override( From 7814e5a2de4e698581969a8b30a804acbfa7610b Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 19 Feb 2024 17:46:12 +0100 Subject: [PATCH 3/3] Fix type issue --- scanner/providers/implementations/themoviedatabase.py | 2 +- scanner/providers/provider.py | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/scanner/providers/implementations/themoviedatabase.py b/scanner/providers/implementations/themoviedatabase.py index d0ea8d669..ab3c6cae8 100644 --- a/scanner/providers/implementations/themoviedatabase.py +++ b/scanner/providers/implementations/themoviedatabase.py @@ -506,7 +506,7 @@ async def for_language(lng: str) -> Episode: params={ "language": lng, }, - not_found_fail=f"Could not find episode {episode_nbr} of season {season} of serie {name} (absolute: {absolute})", + not_found_fail=f"Could not find episode {episode_nbr} of season {season} of serie {name} (absolute: {absolute})", ) logging.debug("TMDb responded: %s", episode) diff --git a/scanner/providers/provider.py b/scanner/providers/provider.py index aef107d03..f9e449e44 100644 --- a/scanner/providers/provider.py +++ b/scanner/providers/provider.py @@ -59,9 +59,7 @@ async def identify_show(self, show_id: str) -> Show: raise NotImplementedError @abstractmethod - async def identify_season( - self, show_id: str, season_number: Optional[int] - ) -> Season: + async def identify_season(self, show_id: str, season_number: int) -> Season: raise NotImplementedError @abstractmethod