Merge code-remove branch with TV processing fixes
Local Docker Build (Dev) / build-dev (push) Successful in 24s
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:
@@ -659,6 +659,36 @@ class ExternalClientManager:
|
||||
return None
|
||||
|
||||
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__":
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user