From 21b9d080b3042ea39c89335c6ed08597f9754212 Mon Sep 17 00:00:00 2001 From: Akiya Date: Mon, 9 Jun 2025 17:20:17 +0200 Subject: [PATCH] fix error in case data is empty when retrieving metadata from tautulli --- plexwasher.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/plexwasher.py b/plexwasher.py index e7654ae..c7973bb 100755 --- a/plexwasher.py +++ b/plexwasher.py @@ -16,6 +16,9 @@ import re class RequestError(Exception): pass +class EntryNotFoundError(Exception): + pass + class ApplicationError(Exception): pass @@ -99,7 +102,11 @@ def get_media_paths(rating_key): if response["response"]['result'] == 'error': raise RequestError("Could not request media path for {} : {}".format(rating_key, response["response"]['message'])) - + + if not response["response"]["data"]: + logger.warning("empty response data for rating_key: {}. The media might have already been deleteted. Ignoring it".format(rating_key)) + raise EntryNotFoundError("Could not request media path for {} : {}".format(rating_key, response["response"]['message'])) + match response["response"]["data"]["media_type"]: case "movie" | "episode": # If the media is a video file we return it as a list of single element @@ -132,7 +139,12 @@ def get_files_to_remove(unwatched): logger.info("Getting path of unwatched medias") pathToRemove = [] for media in unwatched: - paths = get_media_paths(media) + try: + paths = get_media_paths(media) + except EntryNotFoundError as err: + #skipping in case path could not be retrieved + continue + for path in paths: if path not in FILES_TO_KEEP: pathToRemove.append(path)