def cleanup_incomplete_downloads(): download_dir = os.path.join(app.config.get(prefs.MOVIES_DIRECTORY), 'Incomplete Downloads') if not fileutil.exists(download_dir): return files_in_use = set() for downloader in RemoteDownloader.make_view(): if downloader.get_state() in ('downloading', 'paused', 'offline', 'uploading', 'finished', 'uploading-paused'): filename = downloader.get_filename() if filename: if not fileutil.isabs(filename): filename = os.path.join(download_dir, filename) files_in_use.add(filename) try: entries = fileutil.listdir(download_dir) except OSError: entries = [] for f in entries: f = os.path.join(download_dir, f) if f not in files_in_use: try: if fileutil.isfile(f): fileutil.remove(f) elif fileutil.isdir(f): fileutil.rmtree(f) except OSError: # FIXME - maybe a permissions error? pass
def from_file(source, track_path): """Copy a file to use as cover art.""" if not fileutil.isfile(source): raise ValueError('cover_art must be a file') path = Image._get_destination_path( os.path.splitext(source)[1], track_path) try: shutil.copyfile(source, path) except IOError: logging.warn("Couldn't write cover art file: {0}".format(path)) return None return path
def request_update(self, item): if self.in_shutdown: return filename = item.get_filename() if not filename or not fileutil.isfile(filename): return if item.downloader and not item.downloader.is_finished(): return if item.updating_movie_info: return item.updating_movie_info = True self.queue.put(MovieDataInfo(item))
def from_file(source, track_path): """Copy a file to use as cover art.""" if not fileutil.isfile(source): raise ValueError('cover_art must be a file') path = Image._get_destination_path( os.path.splitext(source)[1], track_path) try: shutil.copyfile(source, path) except IOError: logging.warn( "Couldn't write cover art file: {0}".format(path)) return None return path