示例#1
0
    def _search_params(self,
                       show_id,
                       season,
                       episode,
                       mode,
                       season_numbering=None,
                       session=None):
        searches = []

        show_object = find_show(show_id, session=session)
        episode_object = show_object.get_episode(season, episode)

        air_by_date = show_object.air_by_date
        sports = show_object.sports

        if not season_numbering and (air_by_date or sports):
            date_fmt = '%Y' if mode == 'Season' else '%Y.%m.%d'
            search_name = episode_object.airdate.strftime(date_fmt)
        else:
            search_name = '{type} {number}'.format(
                type='Season' if mode == 'Season' else '',
                number=episode_object.scene_season
                if mode == 'Season' and season else episode_num(
                    episode_object.scene_season, episode_object.scene_episode),
            ).strip()

        params = {
            'category': mode,
            'name': search_name,
        }

        # Search
        if show_object.indexer == 1:
            params['tvdb'] = show_object.indexer_id
            params['series'] = show_object.name
            searches.append(params)

        for name in list(
                set(
                    scene_exceptions.get_scene_exceptions(
                        show_object.indexer_id))):
            series_params = params.copy()
            series_params['series'] = sanitize_scene_name(name)
            searches.append(series_params)

        # extend air by date searches to include season numbering
        if air_by_date and not season_numbering:
            searches.extend(
                self._search_params(show_id,
                                    season,
                                    episode,
                                    mode,
                                    season_numbering=True))

        return searches
示例#2
0
    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.show.air_by_date
        sports = ep_obj.show.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.scene_season if season else episode_num(
                    ep_obj.scene_season, ep_obj.scene_episode
                ),
            ).strip()

        params = {
            'category': season or 'Episode',
            'name': search_name,
        }

        # Search
        if ep_obj.show.indexer == 1:
            params['tvdb'] = ep_obj.show.indexerid
            searches.append(params)
        else:
            name_exceptions = list(
                set(scene_exceptions.get_scene_exceptions(ep_obj.show.indexerid) + [ep_obj.show.name]))
            for name in name_exceptions:
                # Search by name if we don't have tvdb id
                params['series'] = sanitizeSceneName(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
示例#3
0
文件: btn.py 项目: titom1986/SiCKRAGE
    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.show.air_by_date
        sports = ep_obj.show.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.show.indexer == 1:
            params['tvdb'] = ep_obj.show.indexerid
            searches.append(params)
        else:
            name_exceptions = list(
                set(scene_exceptions.get_scene_exceptions(ep_obj.show.indexerid) + [ep_obj.show.name]))
            for name in name_exceptions:
                # Search by name if we don't have tvdb id
                params['series'] = sanitizeSceneName(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
示例#4
0
    def _search_params(self, show_id, season, episode, mode, season_numbering=None):
        searches = []

        show_object = find_show(show_id)
        if not show_object:
            return searches

        episode_object = show_object.get_episode(season, episode)

        if not season_numbering and show_object.search_format in [SearchFormats.AIR_BY_DATE, SearchFormats.SPORTS]:
            date_fmt = '%Y' if mode == 'Season' else '%Y.%m.%d'
            search_name = episode_object.airdate.strftime(date_fmt)
        else:
            search_name = '{type} {number}'.format(
                type='Season' if mode == 'Season' else '',
                number=episode_object.get_season_episode_numbering()[0] if mode == 'Season' and season else
                episode_num(episode_object.get_season_episode_numbering()[0], episode_object.get_season_episode_numbering()[1]),
            ).strip()

        params = {
            'category': mode,
            'name': search_name,
        }

        # Search
        if show_object.indexer == 1:
            params['tvdb'] = show_object.indexer_id
            params['series'] = show_object.name
            searches.append(params)

        for scene_exception in [x.split('|')[0] for x in show_object.scene_exceptions]:
            series_params = params.copy()
            series_params['series'] = sanitize_scene_name(scene_exception)
            searches.append(series_params)

        # extend air by date searches to include season numbering
        if show_object.search_format == SearchFormats.AIR_BY_DATE and not season_numbering:
            searches.extend(self._search_params(show_id, season, episode, mode, season_numbering=True))

        return searches