From 8a07d03017cd1e2a2c3edc74abfd8daf20415ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 7 Apr 2021 02:43:18 +0300 Subject: [PATCH 1/2] Update find_movie error to include what is wrong id_type value --- plex_trakt_sync/trakt_api.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plex_trakt_sync/trakt_api.py b/plex_trakt_sync/trakt_api.py index e79f36d668..ec29603d48 100644 --- a/plex_trakt_sync/trakt_api.py +++ b/plex_trakt_sync/trakt_api.py @@ -172,8 +172,8 @@ def find_movie(self, movie): try: search = trakt.sync.search_by_id(movie.id, id_type=movie.provider) except ValueError as e: - # ValueError: search_type must be one of ('trakt', 'trakt-movie', 'trakt-show', 'trakt-episode', 'trakt-person', 'imdb', 'tmdb', 'tvdb') - raise e + # Search_type must be one of ('trakt', ..., 'imdb', 'tmdb', 'tvdb') + raise ValueError(f"Invalid id_type: {movie.provider}") from e # look for the first movie in the results for m in search: if type(m) is trakt.movies.Movie: From 9fc9cb77dd401a45d46d2f4384abee0a3b3329aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 7 Apr 2021 03:01:01 +0300 Subject: [PATCH 2/2] Catch JSONDecodeError before ValueError As JSONDecodeError is subclass of ValueError, it needs to be caught before to be able to catch it --- plex_trakt_sync/trakt_api.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plex_trakt_sync/trakt_api.py b/plex_trakt_sync/trakt_api.py index ec29603d48..30ee0e8142 100644 --- a/plex_trakt_sync/trakt_api.py +++ b/plex_trakt_sync/trakt_api.py @@ -1,3 +1,4 @@ +from json import JSONDecodeError from typing import Union import trakt @@ -171,6 +172,8 @@ def add_to_collection(self, m): def find_movie(self, movie): try: search = trakt.sync.search_by_id(movie.id, id_type=movie.provider) + except JSONDecodeError as e: + raise ValueError(f"Unable to search result for {movie.provider}: {movie.id}: {e.doc!r}") from e except ValueError as e: # Search_type must be one of ('trakt', ..., 'imdb', 'tmdb', 'tvdb') raise ValueError(f"Invalid id_type: {movie.provider}") from e