diff --git a/VERSION b/VERSION index c945ef1..ed2af5c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.18 +2.0.19 diff --git a/api/routes.py b/api/routes.py index c944fb7..08f9711 100644 --- a/api/routes.py +++ b/api/routes.py @@ -152,54 +152,39 @@ 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}") + print(f"DEBUG: Processing latest rename event") - # Try different possible episode data locations - episode_info = latest_rename.get("episode", {}) - episode_file_info = latest_rename.get("episodeFile", {}) - data_info = latest_rename.get("data", {}) + # Extract episodeId directly from the rename event + episode_id = latest_rename.get("episodeId") + print(f"DEBUG: Found episodeId {episode_id} in rename event") - 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_id, - "title": episode_title - }] - print(f"INFO: Found recently renamed episode from history: S{season_num:02d}E{episode_num:02d}") + if episode_id: + # Fetch episode details using the episodeId + episode_detail_url = f"{config.sonarr_url}/api/v3/episode/{episode_id}" + episode_response = requests.get(episode_detail_url, headers={"X-Api-Key": os.environ.get("SONARR_API_KEY", "")}, timeout=10) + + if episode_response.status_code == 200: + episode_detail = episode_response.json() + season_num = episode_detail.get("seasonNumber") + episode_num = episode_detail.get("episodeNumber") + episode_title = episode_detail.get("title") + + print(f"DEBUG: Episode details - Season: {season_num}, Episode: {episode_num}, Title: {episode_title}") + + if season_num is not None and episode_num is not None: + episodes_data = [{ + "seasonNumber": season_num, + "episodeNumber": episode_num, + "id": episode_id, + "title": episode_title + }] + print(f"INFO: Successfully identified renamed episode: S{season_num:02d}E{episode_num:02d} - {episode_title}") + else: + print(f"DEBUG: Episode details missing season/episode numbers") + else: + print(f"DEBUG: Failed to fetch episode details: {episode_response.status_code}") else: - print(f"DEBUG: Could not extract episode data from rename event") + print(f"DEBUG: No episodeId found in rename event") else: print(f"DEBUG: No recent rename events found in last hour") else: