diff --git a/VERSION b/VERSION index 98c938e..f2b42fc 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2.12 +2.2.13 diff --git a/api/web_routes.py b/api/web_routes.py index 71f1cb2..8a1a615 100644 --- a/api/web_routes.py +++ b/api/web_routes.py @@ -773,6 +773,9 @@ async def get_episode_date_options(dependencies: dict, imdb_id: str, season: int """Get available date options for an episode""" print(f"🔍 DEBUG: get_episode_date_options called with imdb_id={imdb_id}, season={season}, episode={episode}") print(f"🔍 DEBUG: episode type: {type(episode)}, episode value: {episode}") + if isinstance(episode, dict): + print(f"🔍 DEBUG: episode dict keys: {list(episode.keys()) if episode else 'None'}") + print(f"🔍 DEBUG: episode dict values: {list(episode.values()) if episode else 'None'}") db = dependencies["db"] # Validate parameters with enhanced checking @@ -981,8 +984,14 @@ async def get_episode_date_options(dependencies: dict, imdb_id: str, season: int episodes = external_clients.tmdb.get_tv_season_episodes(tmdb_id, season) print(f"🔍 DEBUG: TMDB episodes found: {episodes}") - episode_num = int(episode) - if episode_num in episodes: + try: + episode_num = int(episode) + except (ValueError, TypeError) as conv_error: + print(f"❌ Cannot convert episode to int: {episode} (type: {type(episode)})") + print(f" Error: {conv_error}") + episode_num = None + + if episode_num and episode_num in episodes: air_date = episodes[episode_num] print(f"🔍 DEBUG: TMDB air date for S{season:02d}E{episode_num:02d}: {air_date}") @@ -1070,16 +1079,24 @@ async def get_episode_date_options(dependencies: dict, imdb_id: str, season: int "description": "Enter custom date and time" }) - print(f"🔍 DEBUG: Generated {len(options)} options for {imdb_id} S{season:02d}E{episode:02d}:") + # Safe format string for episode + try: + episode_num = int(episode) if not isinstance(episode, int) else episode + print(f"🔍 DEBUG: Generated {len(options)} options for {imdb_id} S{season:02d}E{episode_num:02d}:") + except: + print(f"🔍 DEBUG: Generated {len(options)} options for {imdb_id} (episode format error)") + for i, option in enumerate(options): print(f" Option {i}: {option}") # Ensure we always return valid JSON try: + # Convert episode to int if it's not already + episode_int = int(episode) if not isinstance(episode, int) else episode result = { "imdb_id": imdb_id, "season": season, - "episode": episode, + "episode": episode_int, "current_data": episode_data, "options": options } @@ -1087,4 +1104,12 @@ async def get_episode_date_options(dependencies: dict, imdb_id: str, season: int return result except Exception as e: print(f"❌ ERROR: Failed to create response: {e}") - raise HTTPException(status_code=500, detail=f"Failed to generate episode options: {str(e)}") \ No newline at end of file + # Return with original episode value if conversion fails + result = { + "imdb_id": imdb_id, + "season": season, + "episode": episode, + "current_data": episode_data, + "options": options + } + return result \ No newline at end of file