Ejemplo n.º 1
0
    def __init__(self):
        """
        Constructor de la clase.

        :return: void
        :rtype: None
        """
        # Se instancian los super
        ExceptionBehaviour.__init__(self)
        VarTypedClass.__init__(self)

        # Carga de configuraciones
        core_config = ConfigLoader(DIR_CONFIG, "core.ini")
        validator_config = ConfigLoader(DIR_CONFIG, "validator.ini")
        self._doCheckStructureInSubfolder = validator_config.is_false("STRICT_MODE_PACKAGES")
        self._doRegexCaseInsensitive = validator_config.is_true("CASE_INSENSITIVE")
        self._verbose = core_config.is_true("VERBOSE")

        # Variables de estado
        self._isStructGenerated = False
        self._isValidStructureDirectories = True

        # Variables de la estructura
        self._structureBoolHierarchy = [False]
        self._structureBoolHierarchy2 = [False]
        self._structureDirectoryName = DIR_STRUCTURE_FOLDERNAME
        self._structureDirectoryRoot = DIR_DATA
        self._structurePackage = Package([])

        # Instancia un filemanager para generar la estructura
        self._fm = FileManager()
        self._fm.set_default_working_directory(self._structureDirectoryRoot)
        self._fm.restore_wd()
        self._fm.enable_auto_extract()
        self._fm.enable_do_remove_extracted_folders()
        self._fm.disable_remove_on_extract()
        self._fm.enable_restrict_characters()
        self._fm.enable_structure_characters()
        if self._verbose:
            self._fm.enable_verbose()
        else:
            self._fm.disable_verbose()

        # Variables de verificación
        self._validRegexChars = self._fm._get_valid_regex_chars()
Ejemplo n.º 2
0
    def __init__(self, wd=DIR_UPLOADS):
        """
        Constructor de la clase.

        :param wd: Working directory, carpeta de trabajo sobre la cual se cargarán los distintos archivos
        :type wd: str

        :return: void
        :rtype: None
        """
        # Se instancian los super
        err.ExceptionBehaviour.__init__(self)
        VarTypedClass.__init__(self)

        # Carga de configuraciones
        config = ConfigLoader(DIR_CONFIG, "filemanager.ini")
        core_config = ConfigLoader(DIR_CONFIG, "core.ini")
        folder_config = ConfigLoader(DIR_CONFIG, "folder.ini")
        package_config = ConfigLoader(DIR_CONFIG, "packages.ini")

        # Parámetros de extracción
        self._autoExtract = config.is_true("AUTOEXTRACT")  # Auto extraer un archivo comprimido
        self._doRemoveExtractedFolders = config.is_true("DO_REMOVE_EXTRACTED_FOLDERS")
        self._extractIfFolderAlreadyExists = config.is_true("REPLACE_IF_FOLDER_ALREADY_EXISTS")
        if config.param_exists("RAR_EXTRACT_ENCODING"):
            self._rarFileEncoding = config.get_value("RAR_EXTRACT_ENCODING")
        else:
            self._rarFileEncoding = _DEFAULT_RAR_EXTRACT_ENCODING

        # Parámetros de exclusión
        self._ignoredFiles = folder_config.get_value_listed("IGNORE")
        self._removeOnExtract = config.is_true("REMOVE_ON_EXTRACT")

        # Parámetros de caracteres
        self._doCharactersRestricted = config.is_true("CHARACTERS_DO_RESTRICT")
        self._needDotOnFile = package_config.is_true("NEED_DOT_ON_FILE")
        self._validChars = package_config.get_value("VALID_CHARACTERS")
        self._validChars_rec = self._validChars
        self._validStructureChars = package_config.get_value("VALID_STRUCTURE_CHARACTERS")
        self._validRegexChars = package_config.get_value("VALID_REGEX_CHARACTERS")

        # Otros parámetros
        if package_config.param_exists("ENCODE"):
            self._fileEncoding = package_config.get_value("ENCODE")
        else:
            self._fileEncoding = _DEFAULT_FILE_ENCODING
        self._verbose = core_config.is_true("VERBOSE")

        # Variables del FD
        self._wd = wd
        self._defaultwd = DIR_UPLOADS
        self._lastExecutionExtractedFilelist = []