def _lookup_with_tmaze_id_and_season_and_episode( self, id_tvmaze: str, season: Optional[int], episode: Optional[int]) -> Generator[MetadataEpisode, None, None]: series_data = tvmaze_show(id_tvmaze) episode_data = tvmaze_episode_by_number(id_tvmaze, season, episode) id_tvdb = series_data["externals"]["thetvdb"] yield self._transform_meta(id_tvmaze, id_tvdb, series_data, episode_data)
def _search_with_season_and_episode( self, series: str, season: Optional[int], episode: Optional[int]) -> Generator[MetadataEpisode, None, None]: assert season series_data = tvmaze_show_search(series) for idx, series_entry in enumerate(series_data): if idx >= 3: break series_entry = series_entry["show"] id_tvmaze = series_entry["id"] try: episode_entry = tvmaze_episode_by_number( id_tvmaze, season, episode) except MnamerNotFoundException: continue meta = self._transform_meta(id_tvmaze, None, series_entry, episode_entry) if season is not None and season != meta.season: continue if episode is not None and episode != meta.episode: continue yield meta
def test_tvmaze_episode_by_number__no_hits(): with pytest.raises(MnamerNotFoundException): tvmaze_episode_by_number(JUNK_TEXT, 1, 1)
def test_tvmaze_episode_by_number__success(): target_id = EPISODE_META["The Walking Dead"]["id_tvmaze"] result = tvmaze_episode_by_number(target_id, 3, 3) assert result assert result["id"] == 4116