def directory(self, path): directory = None if os.path.isdir(path): self.log_and_output('Processing path: {path}', **{'path': path}) directory = os.path.realpath(path) elif os.path.isfile(path): self.log_and_output('Processing path: {path} as a single file', **{'path': path}) directory = os.path.realpath(path) # If the client and the application are not on the same machine, # translate the directory into a network directory elif all([app.TV_DOWNLOAD_DIR, os.path.isdir(app.TV_DOWNLOAD_DIR), helpers.real_path(path) == helpers.real_path(app.TV_DOWNLOAD_DIR)]): directory = os.path.join( app.TV_DOWNLOAD_DIR, os.path.abspath(path).split(os.path.sep)[-1] ) self.log_and_output('Trying to use folder: {directory}', level=logging.DEBUG, **{'directory': directory}) else: self.log_and_output( 'Unable to figure out what folder to process.' " If your download client and Medusa aren't on the same" ' machine, make sure to fill out the Post Processing Dir' ' field in the config.', level=logging.WARNING ) setattr(self, '_directory', directory)
def delete_folder(folder, check_empty=True): """ Remove a folder from the filesystem. :param folder: Path to folder to remove :param check_empty: Boolean, check if the folder is empty before removing it, defaults to True :return: True on success, False on failure """ # check if it's a folder if not folder or not os.path.isdir(folder): return False # check if it's a protected folder if helpers.real_path(folder) in (helpers.real_path( app.TV_DOWNLOAD_DIR), helpers.real_path( app.DEFAULT_CLIENT_PATH), helpers.real_path(app.TORRENT_PATH)): return False # check if it's empty folder when wanted checked if check_empty: check_files = os.listdir(folder) if check_files: log.info( 'Not deleting folder {folder} found the following files: {check_files}', { 'folder': folder, 'check_files': check_files }) return False try: log.info("Deleting folder (if it's empty): {folder}", {'folder': folder}) os.rmdir(folder) except (OSError, IOError) as error: log.warning('Unable to delete folder: {folder}: {error}', { 'folder': folder, 'error': ex(error) }) return False else: try: log.info('Deleting folder: {folder}', {'folder': folder}) shutil.rmtree(folder) except (OSError, IOError) as error: log.warning('Unable to delete folder: {folder}: {error}', { 'folder': folder, 'error': ex(error) }) return False return True
def delete_folder(folder, check_empty=True): """ Remove a folder from the filesystem. :param folder: Path to folder to remove :param check_empty: Boolean, check if the folder is empty before removing it, defaults to True :return: True on success, False on failure """ # check if it's a folder if not os.path.isdir(folder): return False # check if it isn't TV_DOWNLOAD_DIR if app.TV_DOWNLOAD_DIR: if helpers.real_path(folder) == helpers.real_path( app.TV_DOWNLOAD_DIR): return False # check if it's empty folder when wanted checked if check_empty: check_files = os.listdir(folder) if check_files: logger.log( 'Not deleting folder {0} found the following files: {1}'. format(folder, check_files), logger.INFO) return False try: logger.log( "Deleting folder (if it's empty): {0}".format(folder)) os.rmdir(folder) except (OSError, IOError) as error: logger.log( 'Unable to delete folder: {0}: {1}'.format( folder, ex(error)), logger.WARNING) return False else: try: logger.log('Deleting folder: {0}'.format(folder)) shutil.rmtree(folder) except (OSError, IOError) as error: logger.log( 'Unable to delete folder: {0}: {1}'.format( folder, ex(error)), logger.WARNING) return False return True
def delete_folder(folder, check_empty=True): """ Remove a folder from the filesystem. :param folder: Path to folder to remove :param check_empty: Boolean, check if the folder is empty before removing it, defaults to True :return: True on success, False on failure """ # check if it's a folder if not os.path.isdir(folder): return False # check if it isn't TV_DOWNLOAD_DIR if app.TV_DOWNLOAD_DIR: if helpers.real_path(folder) == helpers.real_path(app.TV_DOWNLOAD_DIR): return False # check if it's empty folder when wanted checked if check_empty: check_files = os.listdir(folder) if check_files: logger.log('Not deleting folder {0} found the following files: {1}'.format (folder, check_files), logger.INFO) return False try: logger.log("Deleting folder (if it's empty): {0}".format(folder)) os.rmdir(folder) except (OSError, IOError) as error: logger.log('Unable to delete folder: {0}: {1}'.format(folder, ex(error)), logger.WARNING) return False else: try: logger.log('Deleting folder: {0}'.format(folder)) shutil.rmtree(folder) except (OSError, IOError) as error: logger.log('Unable to delete folder: {0}: {1}'.format(folder, ex(error)), logger.WARNING) return False return True