diff --git a/flask_app/app.py b/flask_app/app.py index e49ed53..4975f1c 100644 --- a/flask_app/app.py +++ b/flask_app/app.py @@ -1,35 +1,104 @@ -from flask import Flask, render_template, request +from flask import Flask, request import sqlite3 -app = Flask(__name__, static_folder="assets", static_url_path="/assets") + +app = Flask(__name__) + + +STYLE = """ + +""" + def get_db(): db = sqlite3.connect("adventure.db") - db.row_factory = sqlite3.Row # Spalten per Name ansprechen + db.row_factory = sqlite3.Row return db + @app.route("/") -@app.route("/app/") -def hello(): - return render_template("index.html") +def start(): + return STYLE + '

Stadion Escape

Abenteuer starten' -@app.route("/raetsel", methods=["GET", "POST"]) -@app.route("/raetsel/", methods=["GET", "POST"]) -@app.route("/app/raetsel", methods=["GET", "POST"]) -@app.route("/app/raetsel/", methods=["GET", "POST"]) -@app.route("/frage", methods=["GET", "POST"]) -@app.route("/frage/", methods=["GET", "POST"]) -@app.route("/app/frage", methods=["GET", "POST"]) -@app.route("/app/frage/", methods=["GET", "POST"]) -def raetsel(): - if request.method == "POST": - if request.form["antwort"] == "4": - return render_template("raetsel.html", ergebnis="Richtig! Das Stadiontor öffnet sich.") - return render_template("raetsel.html", ergebnis="Leider falsch, du bist wohl kein wahrer Fan.") +@app.route("/raum/", methods=["GET", "POST"]) +@app.route("/app/raum/", methods=["GET", "POST"]) +def raum(raum_id): + db = get_db() + r = db.execute("SELECT * FROM raeume WHERE id=?", (raum_id,)).fetchone() - return render_template("raetsel.html") + if r is None: + db.close() + return STYLE + '

Raum nicht gefunden

Zurück zum Start', 404 + + if r["raetsel_frage"]: + if request.method == "POST": + antwort = request.form["antwort"].strip().lower() + richtige_antwort = r["raetsel_antwort"].strip().lower() + db.close() + + if antwort == richtige_antwort: + return STYLE + "

Geschafft!

Die Nordkurve feiert mit dir.

" + return STYLE + ( + '

Leider falsch

' + '

Erwin schüttelt den Kopf. Die Botschaft stimmt noch nicht.

' + 'Nochmal versuchen' + ) + + html = "

" + r["name"] + "

" + html += "

" + r["beschreibung"] + "

" + html += '
' + html += "

" + r["raetsel_frage"] + "

" + html += '' + html += "" + html += "
" + db.close() + return STYLE + html + + ausgaenge = db.execute( + "SELECT richtung, nach_raum FROM ausgaenge WHERE von_raum=?", + (raum_id,), + ).fetchall() + db.close() + + html = "

" + r["name"] + "

" + html += "

" + r["beschreibung"] + "

" + for a in ausgaenge: + html += '' + html += a["richtung"] + html += " " + + return STYLE + html if __name__ == "__main__": - app.run(host="0.0.0.0", port=9007) + app.run(host="0.0.0.0", port=9000)