def _lookup_with_id( self, id_tvmaze: Optional[str], id_tvdb: Optional[str], season: Optional[int], episode: Optional[int], ) -> Iterator[MetadataEpisode]: assert id_tvmaze or id_tvdb if id_tvmaze: query_id_tvmaze = id_tvmaze series_data = tvmaze_show(id_tvmaze) query_id_tvdb = series_data["externals"]["thetvdb"] else: series_data = tvmaze_show_lookup(id_tvdb=id_tvdb) query_id_tvdb = id_tvdb query_id_tvmaze = series_data["id"] episode_data = tvmaze_show_episodes_list(query_id_tvmaze) for episode_entry in episode_data: meta = self._transform_meta(query_id_tvmaze, query_id_tvdb, series_data, 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_show_episodes_list__success(): results = tvmaze_show_episodes_list(META["id_tvmaze"]) assert results result = results[0] for expected_episode_key in EXPECTED_EPISODE_KEYS: assert expected_episode_key in result for actual_key in result: assert actual_key in EXPECTED_EPISODE_KEYS
def _search(self, series: str, season: Optional[int], episode: Optional[int]) -> Iterator[MetadataEpisode]: assert series 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"] episode_data = tvmaze_show_episodes_list(id_tvmaze) for episode_entry in episode_data: id_tvdb = series_entry["externals"]["thetvdb"] meta = self._transform_meta(id_tvmaze, id_tvdb, 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_show_episodes_list__no_hits(): with pytest.raises(MnamerNotFoundException): tvmaze_show_episodes_list(JUNK_TEXT)