def should_process(self, path, failed=False): """ Determine if a directory should be processed. :param path: Path we want to verify :param failed: (optional) Mark the directory as failed :return: True if the directory is valid for processing, otherwise False :rtype: Boolean """ if not self._is_valid_folder(path, failed): return False folder = os.path.basename(path) if helpers.is_hidden_folder(path) or any(f == folder for f in self.IGNORED_FOLDERS): self.log('Ignoring folder: {0}'.format(folder), logger.DEBUG) self.missedfiles.append('{0}: Hidden or ignored folder'.format(path)) return False for root, dirs, files in os.walk(path): for subfolder in dirs: if not self._is_valid_folder(os.path.join(root, subfolder), failed): return False for each_file in files: if helpers.is_media_file(each_file) or helpers.is_rar_file(each_file): return True # Stop at first subdirectories if post-processing path if self.directory == path: break self.log('No processable items found in folder: {0}'.format(path), logger.DEBUG) return False
def should_process(self, path): """ Determine if a directory should be processed. :param path: Path we want to verify :return: True if the directory is valid for processing, otherwise False :rtype: Boolean """ if not self._is_valid_folder(path): return False folder = os.path.basename(path) if helpers.is_hidden_folder(path) or any(f == folder for f in self.IGNORED_FOLDERS): self.log_and_output('Ignoring folder: {folder}', level=logging.DEBUG, **{'folder': folder}) self.missed_files.append('{0}: Hidden or ignored folder'.format(path)) return False for root, dirs, files in os.walk(path): for subfolder in dirs: if not self._is_valid_folder(os.path.join(root, subfolder)): return False for each_file in files: if helpers.is_media_file(each_file) or helpers.is_rar_file(each_file): return True # Stop at first subdirectories if post-processing path if self.directory == path and not self.resource_name: break self.log_and_output('No processable items found in folder: {path}', level=logging.DEBUG, **{'path': path}) return False
def should_process(self, path, failed=False): """ Determine if a directory should be processed. :param path: Path we want to verify :param failed: (optional) Mark the directory as failed :return: True if the directory is valid for processing, otherwise False :rtype: Boolean """ folder = os.path.basename(path) if folder in self.IGNORED_FOLDERS: return False if folder.startswith('_FAILED_'): self._log('The directory name indicates it failed to extract.', logger.DEBUG) failed = True elif folder.startswith('_UNDERSIZED_'): self._log( 'The directory name indicates that it was previously rejected for being undersized.', logger.DEBUG) failed = True elif folder.upper().startswith('_UNPACK'): self._log( 'The directory name indicates that this release is in the process of being unpacked.', logger.DEBUG) self.missedfiles.append('{0}: Being unpacked'.format(folder)) return False if failed: self.process_failed(path) self.missedfiles.append('{0}: Failed download'.format(folder)) return False if helpers.is_hidden_folder(path): self._log('Ignoring hidden folder: {0}'.format(folder), logger.DEBUG) self.missedfiles.append('{0}: Hidden folder'.format(folder)) return False for root, dirs, files in os.walk(path): for each_file in files: if helpers.is_media_file(each_file) or helpers.is_rar_file( each_file): return True del root # unused variable del dirs # unused variable self._log('No processable items found in folder: {0}'.format(path), logger.DEBUG) return False