# from flask import Flask, render_template

# from flask_socketio import SocketIO, emit


# app = Flask(__name__)

# app.config['SECRET_KEY'] = 'mysecretkey'

# socketio = SocketIO(app)


# @app.route('/')

# def index():

#     return render_template('index.html')

# socketio = SocketIO(app, async_mode='threading', cors_allowed_origins='*')


# @socketio.on('command')

# def handle_command(command):

#     # Aqui, você pode executar o comando recebido e obter a saída

#     # do terminal em uma variável chamada "output"

#     print(command)

#     # Exemplo de código para executar um comando usando o módulo "subprocess":

#     import subprocess

#     process = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)

#     print(process)

#     output, _ = process.communicate()

   

#     emit('output', output.decode('latin-1'))




# if __name__ == '__main__':

#     socketio.run(app, debug=True)

from flask import Flask, render_template

from flask_socketio import SocketIO, emit

from netmiko import ConnectHandler


app = Flask(__name__)

app.config['SECRET_KEY'] = 'mysecretkey'

socketio = SocketIO(app)


@app.route('/')

def index():

    return render_template('index.html')


@socketio.on('command')

def handle_command(command):

    # Configuração do dispositivo MikroTik

    device = {

        'device_type': 'mikrotik_routeros',

        'host': ' ',

        'username': ' ',

        'password': ' #',

        'port':' '

    }


    # Conexão ao dispositivo

    try:

        net_connect = ConnectHandler(**device)

        output = net_connect.send_command_timing(command)

    except Exception as e:

        output = str(e)


    emit('output', output)


if __name__ == '__main__':

    socketio.run(app, debug=True)