import typing import uuid from clients.webclients import Client, CLIENTS from flask import Flask, render_template, request, redirect, session BIOGAMES_HOST = "http://biogames.potato.kinf.wiai.uni-bamberg.de" app = Flask(__name__) clients: typing.Dict[str, Client] = {} @app.route("/") def index(): return render_template("index.html", clients=CLIENTS) @app.route("/login", methods=["POST"]) def login(): game = request.form["game"] if not game in CLIENTS: return redirect("/") client = CLIENTS[game](host=BIOGAMES_HOST, username=request.form['username'], password=request.form['password']) if client.login(): session['logged_in'] = True session['uid'] = str(uuid.uuid4()) session['cookies'] = client.cookies session['game'] = game session['host'] = BIOGAMES_HOST clients[session['uid']] = client return redirect("/games") return redirect("/") @app.route("/games") def games(): if not session['logged_in']: return redirect("/") if session['logged_in'] and not session['uid'] in clients: clients[session['uid']] = CLIENTS[session['game']](host=session['host'], **session['cookies']) return render_template("games.html", logs=clients[session['uid']].list()) @app.route("/start", methods=['POST']) def start(): pass @app.route("/status") def status(): pass if __name__ == '__main__': app.config.update({"SECRET_KEY":"59765798-2784-11e8-8d05-db4d6f6606c9"}) app.run(host="0.0.0.0", debug=True)