예제 #1
0
def sync_queue(queue=None):
    if not queue:
        queue = QUEUE
    for file in queue:
        if file.delete:
            if recursive_delete(os.sep.join(file.old_location.split(os.sep)[:3 + MAC_OFFSET])):
                file.report['info'].append('Delete successful')
            else:
                file.report['error'].append('Delete failed')
            continue
        if file.override:
            delete_file(file)
            try:
                e = SHOWS[file.series_name].get_episode_by_sxe(file.s_nr, file.e_nr)
                if e:
                    del SHOWS[file.series_name].seasons[file.s_nr].episodes[file.e_nr]
                    SHOWS[file.series_name].seasons[file.s_nr].episode_numbers.remove(file.e_nr)

            except KeyError:
                pass
            except ValueError:
                pass
        if file.type_option == 'Series' and file_exists(file, SHOWS):
            file.report['error'].append('File exists')
            continue
        try:
            shutil.move(file.old_location, file.location)
        except Exception as e:
            print('rename', e)
            file.report['error'].append('Copy failed')
            return
        if wait_on_creation(file.location):
            file.report['success'].append('Copy successful')
        else:
            file.report['error'].append('Copy failed')
        if file.type_option == 'Series' and file.extension not in SUBS:
            show = SHOWS[file.series_name]
            if not show.status == file.status:
                file.report['info'].append('Status changed to ' + file.status)
                show.status = file.status
            e = Episode(file.location)
            e.update_file_meta()
            if show.add_episode(e):
                file.report['info'].append('Season created')
        loc = os.sep.join(file.old_location.split(os.sep)[:3 + MAC_OFFSET])
        if os.path.isdir(loc):
            if loc not in CLEAN_UP:
                CLEAN_UP.append(loc)
예제 #2
0
 def update_episodes(self, reload_metadata=True):
     self.episodes = {}
     self.episode_numbers = []
     files = listdir(self.location)
     for file in files:
         episode = Episode(location=path.join(self.location, file), s_nr=self.s_nr)
         if reload_metadata:
             episode.update_file_meta()
         if episode.e_nr in self.episode_numbers:
             if not episode.e_nr == 999:
                 episode.e_nr = 777
         while episode.e_nr in self.episodes:
             episode.e_nr += 1
         self.episodes[episode.e_nr] = episode
         if episode.e_nr < 777:
             self.episode_numbers.append(episode.e_nr)
     sorted(self.episode_numbers)