def main(self):

        # solicitar nombre del archivo (debe estar en el misma carpeta)
        print('\nWrite the file name with extension (e.g. rules.txt):\n')
        filename = input()

        # obtener direccion absoluta del archivo:
        # https://stackoverflow.com/questions/12201928/python-open-gives-ioerror-errno-2-no-such-file-or-directory
        script_location = Path(__file__).absolute().parent
        file_location = script_location / filename
        # print(file_location)

        # si el archivo existe la ejecución continúa
        # https://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-without-exceptions
        if (os.path.exists(file_location) == True):

            # leer expresión según el archivo de reglas
            reader = FileReader()
            expression, instruction = reader.readRules(file_location)

            # validar que se haya encontrado expresión e instrucción a realizar
            if (expression == None or instruction == None):
                print("\nThere was a problem with the file text")
            else:

                print("\nExpression to filter: " + expression)

                # hacer lo nuestro
                firewall = Firewall(expression)
                validation = firewall.validateExpression()
                if (validation == "No error"):  # la expresión es correcta
                    if (instruction == "allow"
                        ):  # se permite tráfico específico
                        firewall.allowTraffic()
                    elif (instruction == "block"
                          ):  # se bloquean tráfico especifico
                        firewall.blockTraffic()
                else:  # la expresión es errónea de acuerdo con reglas de librería WinDivert
                    print(
                        "The expression is wrong according to WinDivert rules")

        else:  # si el archivo no existe se termina la ejecución
            print("The file doesn't exist")