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)
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)