from flask import Flask, render_template, redirect, url_for, request from time import sleep from sshtunnel import open_tunnel import paramiko from getpass import getpass from arango import ArangoClient from config import host_adress, db_arango from html_page import html_text # Route for handling the login page logic # import the Flask class from the flask module from flask import Flask, render_template # create the application object app = Flask(__name__) # use decorators to link the function to a url @app.route("/") def home(): return "Hello, World!" # return a string @app.route("/welcome") def welcome(): return render_template("welcome.html") # render a template @app.route("/result") def result(url): return render_template(url) # render a template @app.route("/login", methods=["GET", "POST"]) def login(): error = None if request.method == "POST": credentials = { "lasse": "test" } if ( request.form["username"] not in credentials or request.form["password"] != credentials[request.form["username"]] ): sleep(2) error = "Fel lösenord. Testa igen." else: sleep(2) username = 'Webbapp' pwd = 'jagged-CUTTER-lyon-yourself-scavenge' path_to_key="/Users/Lasse/.ssh/id_rsa" pwd_key = getpass('Key pwd: ') with open_tunnel( (host_adress, 2210), ssh_username="lasse", ssh_pkey=paramiko.RSAKey.from_private_key_file( path_to_key, password=pwd_key ), ssh_private_key_password=pwd_key, remote_bind_address=("127.0.0.1", 8529)) as server: port_arango = server.local_bind_port # En annan port än den "vanliga", ska användas nedan. db = ArangoClient(hosts=f'{"http://127.0.0.1"}:{port_arango}').db( db_arango, username=username, password=pwd, ) r = db.collection('members').random() html = html_text.replace('RESULTAT', r['_key']) with open('/Users/Lasse/Datorgemensamt/Programmeringsprojekt/Facebook/fb-scraper/fb-webbapp/templates/test.html', 'w') as page: page.write(html) # Gör söking, skapa sida, returnera den.a return render_template('test.html') return render_template("login.html", error=error) # start the server with the 'run()' method if __name__ == "__main__": app.run(debug=False)