Пример #1
0
    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
Пример #2
0
    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
Пример #3
0
    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
Пример #4
0
    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