diff --git a/flask_app/app.py b/flask_app/app.py index 4975f1c..87fed25 100644 --- a/flask_app/app.py +++ b/flask_app/app.py @@ -1,8 +1,11 @@ -from flask import Flask, request +from flask import Flask, request, session +from html import escape import sqlite3 +import time app = Flask(__name__) +app.secret_key = "stadion-escape-secret" STYLE = """ @@ -35,6 +38,9 @@ STYLE = """ background: #020617; color: #e5e7eb; } + ol { + padding-left: 1.4rem; + } """ @@ -45,9 +51,61 @@ def get_db(): return db -@app.route("/") +def highscore_html(db): + eintraege = db.execute( + """ + SELECT name, fertig_zeit - start_zeit AS dauer + FROM spieler + WHERE fertig_zeit IS NOT NULL + ORDER BY dauer + LIMIT 10 + """ + ).fetchall() + + if not eintraege: + return "" + + html = "
Willkommen, " + escape(name) + ". Dein Weg durchs Stadion beginnt.
" + 'Zum Stadiontor' + ) + + return STYLE + ( + "Trage deinen Namen auf der Eintrittskarte ein. Ab dann läuft deine Zeit.
" + '" + ) @app.route("/raum/Die Nordkurve feiert mit dir.
" + db = get_db() + spieler_id = session.get("spieler_id") + if spieler_id: + db.execute( + "UPDATE spieler SET fertig_zeit=? WHERE id=? AND fertig_zeit IS NULL", + (time.time(), spieler_id), + ) + db.commit() + html = ( + "Die Nordkurve feiert mit dir, " + + escape(session.get("spieler_name", "Fan")) + + ".
" + ) + html += highscore_html(db) + db.close() + return STYLE + html return STYLE + ( 'Erwin schüttelt den Kopf. Die Botschaft stimmt noch nicht.
'