Merge code-remove branch with TV processing fixes
Local Docker Build (Dev) / build-dev (push) Successful in 24s

Resolves TV series processing errors by fixing method calls and adding missing functionality:
- Fixed SonarrClient method names (series_by_imdb, episodes_for_series)
- Added missing get_episode_air_date method to ExternalClientManager
- Merged into dev branch at version 2.0.7
This commit is contained in:
2025-10-04 11:43:37 -04:00
3 changed files with 33 additions and 3 deletions
+1 -1
View File
@@ -1 +1 @@
2.0.6
2.0.7
+30
View File
@@ -660,6 +660,36 @@ class ExternalClientManager:
return self.tvdb.imdb_to_tvdb_series_id(imdb_id)
def get_episode_air_date(self, imdb_id: str, season: int, episode: int) -> Optional[str]:
"""Get episode air date from external sources"""
_log("DEBUG", f"Looking for air date for {imdb_id} S{season:02d}E{episode:02d}")
# Try TMDB first if available
if self.tmdb.enabled:
# Find TV show by IMDB ID
tv_find_result = self.tmdb._get(f"/find/{imdb_id}", {"external_source": "imdb_id"})
if tv_find_result and tv_find_result.get("tv_results"):
tv_show = tv_find_result["tv_results"][0]
tv_id = tv_show.get("id")
if tv_id:
_log("DEBUG", f"Found TMDB TV ID {tv_id} for {imdb_id}")
episodes = self.tmdb.get_tv_season_episodes(tv_id, season)
if episode in episodes:
air_date = episodes[episode]
_log("INFO", f"Found TMDB air date for {imdb_id} S{season:02d}E{episode:02d}: {air_date}")
return _parse_date_to_iso(air_date)
# Try OMDb as fallback
if self.omdb.enabled:
episodes = self.omdb.get_tv_season_episodes(imdb_id, season)
if episode in episodes:
air_date = episodes[episode]
_log("INFO", f"Found OMDb air date for {imdb_id} S{season:02d}E{episode:02d}: {air_date}")
return _parse_date_to_iso(air_date)
_log("WARNING", f"No air date found for {imdb_id} S{season:02d}E{episode:02d}")
return None
if __name__ == "__main__":
# Test the clients
+2 -2
View File
@@ -142,7 +142,7 @@ class TVProcessor:
def _get_sonarr_episodes(self, imdb_id: str) -> Dict[Tuple[int, int], Dict[str, Any]]:
"""Get episode information from Sonarr"""
try:
series_data = self.sonarr.get_series_by_imdb(imdb_id)
series_data = self.sonarr.series_by_imdb(imdb_id)
if not series_data:
return {}
@@ -150,7 +150,7 @@ class TVProcessor:
if not series_id:
return {}
episodes = self.sonarr.get_episodes(series_id)
episodes = self.sonarr.episodes_for_series(series_id)
episode_map = {}
for episode in episodes: