예제 #1
0
def _create_export_tv_tasks(videoid, metadata, nfo_settings):
    """Create tasks for a show, season or episode.
    If videoid represents a show or season, tasks will be generated for
    all contained seasons and episodes"""
    if videoid.mediatype == common.VideoId.SHOW:
        tasks = _compile_export_show_tasks(videoid, metadata[0], nfo_settings)
    elif videoid.mediatype == common.VideoId.SEASON:
        tasks = _compile_export_season_tasks(
            videoid, metadata[0],
            common.find(int(videoid.seasonid), 'id', metadata[0]['seasons']),
            nfo_settings)
    else:
        tasks = [
            _create_export_episode_task(videoid,
                                        *metadata,
                                        nfo_settings=nfo_settings)
        ]

    if nfo_settings and nfo_settings.export_full_tvshow:
        # Create tvshow.nfo file
        # In episode metadata, show data is at 3rd position,
        # while it's at first position in show metadata.
        # Best is to enumerate values to find the correct key position
        key_index = -1
        for i, item in enumerate(metadata):
            if item and item.get('type', None) == 'show':
                key_index = i
        if key_index > -1:
            tasks.append(
                _create_export_item_task(
                    'tvshow.nfo', FOLDER_TV, videoid,
                    metadata[key_index]['title'], 'tvshow',
                    nfo.create_show_nfo(metadata[key_index]), False))
    return tasks
    def _create_export_tvshow_jobs(self, videoid, metadata, nfo_settings):
        """
        Create jobs data to export a: tv show, season or episode.
        The data for the jobs will be generated by extrapolating every single episode.
        """
        if videoid.mediatype == common.VideoId.SHOW:
            tasks = self._get_export_tvshow_jobs(videoid, metadata[0],
                                                 nfo_settings)
        elif videoid.mediatype == common.VideoId.SEASON:
            tasks = self._get_export_season_jobs(
                videoid, metadata[0],
                common.find(int(videoid.seasonid), 'id',
                            metadata[0]['seasons']), nfo_settings)
        else:
            tasks = [
                self._create_export_episode_job(videoid,
                                                *metadata,
                                                nfo_settings=nfo_settings)
            ]

        if nfo_settings and nfo_settings.export_full_tvshow:
            # Create tvshow.nfo file
            # In episode metadata, the show data is at 3rd position,
            # In show metadata, the show data is at 1st position.
            # Best is to enumerate values to find the correct key position
            key_index = -1
            for i, item in enumerate(metadata):
                if item and item.get('type', None) == 'show':
                    key_index = i
            if key_index > -1:
                tasks.append(
                    self._build_export_job_data(
                        False,
                        True,
                        videoid=videoid,
                        title='tvshow.nfo',
                        root_folder_name=FOLDER_NAME_SHOWS,
                        folder_name=metadata[key_index]['title'],
                        filename='tvshow',
                        nfo_data=nfo.create_show_nfo(metadata[key_index])))
        return tasks
예제 #3
0
 def _create_export_tvshow_nfo_job(self, videoid, metadata):
     # Create tvshow.nfo file
     # 'get_metadata' return metadata as tuple that can have more items according to type requested, e.g.
     # for episode metadata: (episode_meta, season_meta, tvshow_meta)
     # for tvshow/season metadata: (tvshow_meta,)
     # We need to get the tvshow metadata for each case, then we try to find it on each tuple item
     key_index = -1
     for i, item in enumerate(metadata):
         if item and item.get('type', None) == 'show':
             key_index = i
     if key_index == -1:
         return None
     return self._build_export_job_data(
         False,
         True,
         videoid=videoid,
         title='tvshow.nfo',
         root_folder_name=FOLDER_NAME_SHOWS,
         folder_name=metadata[key_index]['title'],
         filename='tvshow',
         nfo_data=nfo.create_show_nfo(metadata[key_index]))
예제 #4
0
def _create_tv_tasks(videoid, metadata, nfo_settings):
    """Create tasks for a show, season or episode.
    If videoid represents a show or season, tasks will be generated for
    all contained seasons and episodes"""
    if videoid.mediatype == common.VideoId.SHOW:
        tasks = _compile_show_tasks(videoid, metadata[0], nfo_settings)
    elif videoid.mediatype == common.VideoId.SEASON:
        tasks = _compile_season_tasks(
            videoid, metadata[0],
            common.find(int(videoid.seasonid), 'id', metadata[0]['seasons']),
            nfo_settings)
    else:
        tasks = [
            _create_episode_task(videoid, *metadata, nfo_settings=nfo_settings)
        ]

    if nfo_settings and nfo_settings.export_full_tvshow:
        # Create tvshow.nfo file
        tasks.append(
            _create_item_task('tvshow.nfo', FOLDER_TV, videoid,
                              metadata[0]['title'], 'tvshow',
                              nfo.create_show_nfo(metadata[0]), False))
    return tasks