From e03249bb36df0fe068dc04de273225d31a31794d Mon Sep 17 00:00:00 2001 From: sbcrumb Date: Fri, 10 Oct 2025 14:11:07 -0400 Subject: [PATCH] Add comprehensive rename event debugging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enhanced debugging for Sonarr rename events to understand the actual structure of episodeFileRenamed history records. Added checks for episode data in multiple possible locations (episode, episodeFile, data objects) to identify why season/episode information is missing. 🤖 Generated with [Claude Code](https://claude.ai/code) --- VERSION | 2 +- api/routes.py | 44 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/VERSION b/VERSION index a6e7bcb..c945ef1 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.17 +2.0.18 diff --git a/api/routes.py b/api/routes.py index fc3c1ca..c944fb7 100644 --- a/api/routes.py +++ b/api/routes.py @@ -152,20 +152,54 @@ async def sonarr_webhook(request: Request, background_tasks: BackgroundTasks, de if recent_renames: # Take the most recent rename event latest_rename = recent_renames[0] + print(f"DEBUG: Latest rename event keys: {list(latest_rename.keys())}") + print(f"DEBUG: Latest rename event full structure: {latest_rename}") + + # Try different possible episode data locations episode_info = latest_rename.get("episode", {}) - season_num = episode_info.get("seasonNumber") - episode_num = episode_info.get("episodeNumber") + episode_file_info = latest_rename.get("episodeFile", {}) + data_info = latest_rename.get("data", {}) + + print(f"DEBUG: Episode info: {episode_info}") + print(f"DEBUG: EpisodeFile info: {episode_file_info}") + print(f"DEBUG: Data info: {data_info}") + + # Try to extract episode info from any available source + season_num = None + episode_num = None + episode_id = None + episode_title = None + + # Check episode object first + if episode_info: + season_num = episode_info.get("seasonNumber") + episode_num = episode_info.get("episodeNumber") + episode_id = episode_info.get("id") + episode_title = episode_info.get("title") + + # Check episodeFile object + if not season_num and episode_file_info: + season_num = episode_file_info.get("seasonNumber") + episode_num = episode_file_info.get("episodeNumber") + episode_id = episode_file_info.get("episodeId") or episode_file_info.get("id") + + # Check data object + if not season_num and data_info: + season_num = data_info.get("seasonNumber") + episode_num = data_info.get("episodeNumber") + + print(f"DEBUG: Extracted - Season: {season_num}, Episode: {episode_num}, ID: {episode_id}") if season_num and episode_num: episodes_data = [{ "seasonNumber": season_num, "episodeNumber": episode_num, - "id": episode_info.get("id"), - "title": episode_info.get("title") + "id": episode_id, + "title": episode_title }] print(f"INFO: Found recently renamed episode from history: S{season_num:02d}E{episode_num:02d}") else: - print(f"DEBUG: Recent rename event missing season/episode data") + print(f"DEBUG: Could not extract episode data from rename event") else: print(f"DEBUG: No recent rename events found in last hour") else: