def _get_episode_search_strings(self, episode, add_string=''): """Get episode search strings.""" if not episode: return [] search_string = { 'Episode': [] } season_scene_names = scene_exceptions.get_scene_exceptions( episode.series, episode.scene_season ) for show_name in episode.series.get_all_possible_names(season=episode.scene_season): if show_name in season_scene_names: episode_season = int(episode.scene_episode) else: episode_season = int(episode.absolute_number) episode_string = '{name}%{episode}'.format( name=show_name, episode=episode_season ) if add_string: episode_string += '%{string}'.format(string=add_string) search_string['Episode'].append(episode_string.strip()) return [search_string]
def _get_episode_search_strings(self, episode, add_string=''): """Get episode search strings.""" if not episode: return [] search_string = {'Episode': []} season_scene_names = scene_exceptions.get_scene_exceptions( episode.series.indexerid, episode.series.indexer, episode.scene_season) for show_name in episode.series.get_all_possible_names( season=episode.scene_season): if show_name in season_scene_names: episode_season = int(episode.scene_episode) else: episode_season = int(episode.absolute_number) episode_string = '{name}%{episode}'.format(name=show_name, episode=episode_season) if add_string: episode_string += '%{string}'.format(string=add_string) search_string['Episode'].append(episode_string.strip()) return [search_string]
def _get_episode_search_strings(self, episode, add_string=''): """Get episode search strings.""" if not episode: return [] search_string = {'Episode': []} all_possible_show_names = episode.series.get_all_possible_names() if episode.scene_season: all_possible_show_names = all_possible_show_names.union( episode.series.get_all_possible_names( season=episode.scene_season)) for show_name in all_possible_show_names: episode_string = show_name + self.search_separator episode_string_fallback = None if episode.series.air_by_date: episode_string += str(episode.airdate).replace('-', ' ') elif episode.series.sports: episode_string += str(episode.airdate).replace('-', ' ') episode_string += ('|', ' ')[len(self.proper_strings) > 1] episode_string += episode.airdate.strftime('%b') elif episode.series.anime: # If the showname is a season scene exception, we want to use the indexer episode number. if (episode.scene_season > 1 and show_name in get_scene_exceptions( episode.series.indexerid, episode.series.indexer, episode.scene_season)): # This is apparently a season exception, let's use the scene_episode instead of absolute ep = episode.scene_episode else: ep = episode.scene_absolute_number episode_string_fallback = episode_string + '{episode:0>3}'.format( episode=ep) episode_string += '{episode:0>2}'.format(episode=ep) else: episode_string += config.naming_ep_type[2] % { 'seasonnumber': episode.scene_season, 'episodenumber': episode.scene_episode, } if add_string: episode_string += self.search_separator + add_string if episode_string_fallback: episode_string_fallback += self.search_separator + add_string search_string['Episode'].append(episode_string.strip()) if episode_string_fallback: search_string['Episode'].append( episode_string_fallback.strip()) return [search_string]
def _search_params(self, ep_obj, mode, season_numbering=None): if not ep_obj: return [] searches = [] season = 'Season' if mode == 'Season' else '' air_by_date = ep_obj.series.air_by_date sports = ep_obj.series.sports if not season_numbering and (air_by_date or sports): date_fmt = '%Y' if season else '%Y.%m.%d' search_name = ep_obj.airdate.strftime(date_fmt) else: search_name = '{type} {number}'.format( type=season, number=ep_obj.season if season else episode_num( ep_obj.season, ep_obj.episode ), ).strip() params = { 'category': season or 'Episode', 'name': search_name, } # Search if ep_obj.series.indexer == INDEXER_TVDBV2: params['tvdb'] = self._get_tvdb_id() searches.append(params) else: name_exceptions = scene_exceptions.get_scene_exceptions(ep_obj.series) name_exceptions.add(ep_obj.series.name) for name in name_exceptions: # Search by name if we don't have tvdb id params['series'] = name searches.append(params) # extend air by date searches to include season numbering if air_by_date and not season_numbering: searches.extend( self._search_params(ep_obj, mode, season_numbering=True) ) return searches
def test_scene_ex_babylon_5(self): series_obj = Series(1, 70726) self.assertEqual( sorted(scene_exceptions.get_scene_exceptions(series_obj, 1)), sorted({'Babylon 5', 'Babylon5'}))
def test_scene_ex_empty(self): series_obj = Series(1, 70725) self.assertEqual(scene_exceptions.get_scene_exceptions(series_obj, 0), set())
def test_scene_ex_babylon_5(self): self.assertEqual( sorted(scene_exceptions.get_scene_exceptions(70726, 1)), sorted({'Babylon 5', 'Babylon5'}))
def test_scene_ex_empty(self): self.assertEqual(scene_exceptions.get_scene_exceptions(0, 0), set())
def test_scene_ex_babylon_5(self): series_obj = Series(1, 70726) self.assertEqual( sorted(scene_exceptions.get_scene_exceptions(series_obj, 1)), sorted({'Babylon 5', 'Babylon5'}) )
def test_scene_ex_empty(self): series_obj = Series(1, 70725) self.assertEqual(scene_exceptions.get_scene_exceptions(series_obj, 0), set())