87 lines
2.5 KiB
Python
87 lines
2.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from datetime import datetime
|
|
from flask import render_template, request, redirect
|
|
from GirlsDayPython import app
|
|
|
|
def load_code():
|
|
try:
|
|
with open("code.txt", "r", encoding="utf-8") as f:
|
|
return f.read().strip()
|
|
except:
|
|
return "1234"
|
|
|
|
def save_code(code):
|
|
with open("code.txt", "w", encoding="utf-8") as f:
|
|
f.write(code)
|
|
|
|
@app.route('/', methods=["GET", "POST"])
|
|
@app.route('/home', methods=["GET", "POST"])
|
|
def home():
|
|
message = ""
|
|
color = "green"
|
|
success = False
|
|
correct_code = load_code()
|
|
|
|
if request.method == "POST":
|
|
user_code = request.form["code"]
|
|
|
|
if len(user_code) != len(correct_code):
|
|
message = f"Ungültige Eingabe. Der Code ist {len(correct_code)}-stellig."
|
|
color = "red"
|
|
else:
|
|
errors = [i + 1 for i in range(len(correct_code)) if user_code[i] != correct_code[i]]
|
|
|
|
if not errors:
|
|
success = True
|
|
else:
|
|
if len(errors) == 1:
|
|
message = f"Falscher Code! An der Stelle {errors[0]} ist eine falsche Zahl eingetragen worden."
|
|
else:
|
|
stellen = " und ".join(map(str, errors))
|
|
message = f"Falscher Code! An den Stellen {stellen} sind falsche Zahlen eingetragen worden."
|
|
color = "red"
|
|
|
|
return render_template(
|
|
'index.html',
|
|
title='Girls Day Quiz',
|
|
year=datetime.now().year,
|
|
message=message,
|
|
color=color,
|
|
success=success,
|
|
code_length=len(correct_code)
|
|
)
|
|
|
|
@app.route('/admin', methods=["GET", "POST"])
|
|
def admin():
|
|
current_code = load_code()
|
|
|
|
if request.method == "POST":
|
|
new_code = request.form["code"]
|
|
save_code(new_code)
|
|
return redirect("/")
|
|
|
|
return render_template("admin.html", code=current_code, title="Admin", year=datetime.now().year)
|
|
|
|
@app.route('/success')
|
|
def success_page():
|
|
return render_template("success.html", title="Erfolg", year=datetime.now().year)
|
|
|
|
@app.route('/contact')
|
|
def contact():
|
|
return render_template(
|
|
'contact.html',
|
|
title='Kontakt',
|
|
year=datetime.now().year,
|
|
message='Girls Day Quiz'
|
|
)
|
|
|
|
@app.route('/about')
|
|
def about():
|
|
return render_template(
|
|
'about.html',
|
|
title='Über uns',
|
|
year=datetime.now().year,
|
|
message='Girls Day Quiz'
|
|
)
|