diff --git a/.sums b/.sums new file mode 100644 index 0000000..234e7ae --- /dev/null +++ b/.sums @@ -0,0 +1 @@ +dbfbf6b3987f9fb0f75b46515769394a party.db diff --git a/main.py b/main.py index c5ff136..c50e9da 100644 --- a/main.py +++ b/main.py @@ -17,6 +17,7 @@ log = date app.config['SECRET_KEY'] = 'party' matekiste = 0 + def dbcon(sql): con = sqlite3.connect("party.db") warning_log("verbindung mit db wurde aufgenommen") @@ -25,17 +26,20 @@ def dbcon(sql): con.commit() return sql.fetchall() + def dbcon1(sql): con = sqlite3.connect("party.db") cur = con.cursor() return cur.execute(sql) + def uptime(): time = int(zeit) uptime = time - starttime return uptime -#log system + +# log system def log_server(log): log = date + " " + log datei = open('server.log', 'a') @@ -43,53 +47,55 @@ def log_server(log): log = date datei.close() + def error_log(error): error = date + " [ERROR] " + error datei = open('server.log', 'a') datei.write('\n' + " " + error) log = date - datei.close() + datei.close() + def problem_log(problem): - problem = date + " [PROBLEM] "+ problem + problem = date + " [PROBLEM] " + problem datei = open('server.log', 'a') datei.write('\n' + " " + problem) log = date - datei.close() + datei.close() + def warning_log(warning): - warning = date + " [WARNING] "+ warning + warning = date + " [WARNING]" + warning datei = open('server.log', 'a') datei.write('\n' + " " + warning) log = date - datei.close() + datei.close() -# Materechner Logic +# Materechner Logic def mate_logik(sorte, anzahl): - - if sorte == "Club Mate": + if sorte == "Club Mate": koffeingehalt = 100 - if sorte == "Mio Mate": + if sorte == "Mio Mate": koffeingehalt = 100 - if sorte == "Flora Mate": + if sorte == "Flora Mate": koffeingehalt = 90 - if sorte == "Mate Mate": + if sorte == "Mate Mate": koffeingehalt = 150 - if sorte == "Buenos Mate": + if sorte == "Buenos Mate": koffeingehalt = 100 - if sorte == "1337 Mate": + if sorte == "1337 Mate": koffeingehalt = 145 - if sorte == "Charitea Mate": + if sorte == "Charitea Mate": koffeingehalt = 15 - if sorte == "Bionade Mate": + if sorte == "Bionade Mate": koffeingehalt = 20 return koffeingehalt * anzahl @@ -100,12 +106,13 @@ def mate_logik(sorte, anzahl): case "Mio Mio": koffeingehalt = ''' + # mws = mate wirtschafts system def mws(kisten): - log_server("mws wurde angefragt") return mate + # Qr-code generator# def create_qr(id): if not os.path.exists("./static/img/qr.png"): @@ -115,13 +122,15 @@ def create_qr(id): else: warning_log("QR-Code ist bereits vorhanden") -#Hauptseite + +# Hauptseite @app.route("/") def index(): log_server("called /") return render_template("index.html") -#Neue Nachrichten + +# Neue Nachrichten @app.route("/get_chat", methods=['POST']) def get_chat(): if session: @@ -136,28 +145,30 @@ def get_chat(): try: dbcon(l) log_server("message entered successfully") - - except: + except Exception: error_log("unable to get new Messages") - account = cur.fetchone() + # account = cursor.fetchone() return render_template("chat.html") else: - warning_log(" called /get_chat without being logged in") - return "{ \"message\": \"you need to login\"'}" + warning_log(" called /get_chat without being logged in") + return "{ \"message\": \"you need to login\"'}" + @app.route("/get_game_file", methods=['POST']) def get_game_file(): - log_server("called /get_game_file") - pick() + log_server("called /get_game_file") + pick() + @app.route("/get_new_message") def get_new_message(): if session: log_server("called /get_new_message") - return render_template("chat.html") + return render_template("chat.html") else: - warning_log(" called /get_new_message without being logged in") - return render_template('passwd.html') + warning_log(" called /get_new_message without being logged in") + return render_template('passwd.html') + @app.route("/message") def message(): @@ -165,10 +176,11 @@ def message(): log_server("called /message") return render_template("message.html") else: - warning_log(" called /message without being logged in") - return render_template('passwd.html') + warning_log(" called /message without being logged in") + return render_template('passwd.html') -#planer + +# planer @app.route("/get_planer", methods=['POST']) def get_planer(): if session: @@ -185,17 +197,18 @@ def get_planer(): con = sqlite3.connect("party.db") warning_log("verbindung mit db wurde aufgenommen") cur = con.cursor() - cur.execute(l) + cur.execute(l) con.commit() con.close() log_server("event entered successfully /get_planer") - except: + except Exception: error_log("unable to insert event") return redirect(f'/session/{sessionID}') else: - warning_log(" called /get_planer without being logged in") - return render_template('404.html') + warning_log(" called /get_planer without being logged in") + return render_template('404.html') + @app.route("/session/") def session(id): @@ -280,40 +293,53 @@ def session(id): con.commit() cur.close() - return render_template("session.html", uids=uids, unames=unames, zeit=zeit, aktivitaet=aktivitaet, user=user, eventname=eventname, eventzeit=eventzeit, game=game, useranzahl=useranzahl, creator=creator, mate=mate, der=uptime()) + + return render_template("session.html", + zeit=zeit, + aktivitaet=aktivitaet, + user=user, + eventname=eventname, + eventzeit=eventzeit, + game=game, + useranzahl=useranzahl, + creator=creator, + mate=mate, + der=uptime()) + else: - warning_log(" called /session without being logged in") - return render_template('passwd.html') + warning_log(" called /session without being logged in") + return render_template('passwd.html') + @app.route("/mate", methods=['POST']) def mate(): log_server("called /mate") if session: - mateFlaschen = request.form['mateFlaschen'] - sessionId = request.form['sessionID'] + mateFlaschen = request.form['mateFlaschen'] + sessionId = request.form['sessionID'] mateSorte = request.form['mateSorte'] if mateSorte == "Club Mate" and mateFlaschen == 20: - matekiste +1 + matekiste + 1 mws(matekiste) if mateSorte == "Mio Mio" and mateFlaschen == 12: matekiste + 1 mws(matekiste) if mateSorte == "Flora Mate" and mateFlaschen == 20: - matekiste +1 + matekiste + 1 mws(matekiste) if mateSorte == "Mate Mate" and mateFlaschen == 20: martekiste + 1 mws(martekiste) if mateSorte == "Buenos Mate" and mateFlaschen == 20: - matekiste +1 + matekiste + 1 mws(matekiste) if mateSorte == "Charitea Mate" and mateFlaschen == 12: matekiste + 1 mws(matekiste) if mateSorte == "1337 Mate" and mateFlaschen == 20: - matekiste +1 + matekiste + 1 mws(matekiste) if mateSorte == "Bionade Mate" and mateFlaschen == 20: martekiste + 1 @@ -327,13 +353,16 @@ def mate(): cur.execute(mateSql) con.commit() con.close() + + mate_logik(mateSorte, mateFlaschen) log_server("mate wurde in Datenbank eingefügt") except sqlite3.Error as e: error_log(f"error while executing sql: {e}") return redirect(f'/session/{sessionId}') else: - warning_log(" called /mate without being logged in") - return render_template('/passwd') + warning_log(" called /mate without being logged in") + return render_template('/passwd') + @app.route("/logout") def logout(): @@ -341,31 +370,37 @@ def logout(): user_count = -1 return render_template("logout.html") + @app.route("/signin") def signin(): log_server("called /signin") return render_template("signin.html") + @app.route("/password") def password(): log_server("called /password") return render_template("passwort_ver.html") + @app.route("/passwd") def passwd(): log_server("called /passwd") return render_template("passwd.html") + @app.route("/change") def change(): log_server("called /change") return render_template("changeSession.html") + @app.route("/create_session") def create_session(): log_server("called /create_session") return render_template("createSession.html") + @app.route("/get_creat_session", methods=['POST']) def get_creat_session(): log_server("called /get_creat_session with POST") @@ -374,14 +409,14 @@ def get_creat_session(): l = f"INSERT INTO seession (sessionname, sessionstatus, seessiontyp) VALUES( \'{sessionname}\', 'online','public');" log_server("neue Session") try: - con = sqlite3.connect("party.db") - warning_log("verbindung mit db wurde aufgenommen") - cur = con.cursor() - cur.execute(l) - con.commit() - con.close() - - try: + con = sqlite3.connect("party.db") + warning_log("verbindung mit db wurde aufgenommen") + cur = con.cursor() + cur.execute(l) + con.commit() + con.close() + + try: con = sqlite3.connect("party.db") warning_log("verbindung mit db wurde aufgenommen") cur = con.cursor() @@ -389,27 +424,28 @@ def get_creat_session(): usertype = "admin" userId = 1 l = f"INSERT INTO user (username, sessionID, info) VALUES (\'{username}\', {sessionID}, \'{usertype}\');" - cur.execute(l) + cur.execute(l) con.commit() con.close() - except: + except e: warning_log("user admin konnte nicht angelegt werden") - - user_count = +1 - starttime = int(zeit) - create_qr(sessionID) - return redirect(f'/session/{sessionID}') - log_server("session successfully started") - except: + + user_count = +1 + starttime = int(zeit) + create_qr(sessionID) + return redirect(f'/session/{sessionID}') + log_server("session successfully started") + except e: error_log("unable to create Session") return "{ \"message\": \"Login failed\"'}" - - + + @app.route("/login") def login(): log_server("called /login") return render_template("login.html") + @app.route("/stopuhr", methods=['POST']) def stopuhr(): if session: @@ -424,12 +460,13 @@ def stopuhr(): warning_log("verbindung mit Datenbank wurde aufgenommen") dbcon(l) log_server("time entered successfully /stopuhr") - except: + except e: error_log("unable to run sql /stopuhr") return redirect(f'/session/{sessionId}') else: - warning_log(" called /stopuhr without being logged in") - return render_template('passwd.html') + warning_log(" called /stopuhr without being logged in") + return render_template('passwd.html') + @app.route("/get_event", methods=['POST']) def get_event(): @@ -443,16 +480,17 @@ def get_event(): con = sqlite3.connect("party.db") warning_log("verbindung mit db wurde aufgenommen") cur = con.cursor() - cur.execute(l) + cur.execute(l) con.commit() con.close() log_server("event entered successfully /get_event") - except: + except e: error_log("unable to run sql /get_event") return render_template("login.html") else: - warning_log(" called /get_event without being logged in") - return render_template('passwd.html') + warning_log(" called /get_event without being logged in") + return render_template('passwd.html') + @app.route("/controll") def controll(): @@ -460,8 +498,9 @@ def controll(): log_server("called /controll") return render_template("controll.html") else: - warning_log(" called /controll without being logged in") - return render_template('passwd.html') + warning_log(" called /controll without being logged in") + return render_template('passwd.html') + @app.route("/game") def game(): @@ -469,9 +508,9 @@ def game(): log_server("called /game") return render_template("game.html") else: - warning_log(" called /game without being logged in") + warning_log(" called /game without being logged in") - return render_template('passwd.html') + return render_template('passwd.html') @app.route("/rgb") @@ -480,8 +519,9 @@ def rgb(): log_server("called /rgb") return render_template("404.html") else: - warning_log(" called /rgb without being logged in") - return render_template('passwd.html') + warning_log(" called /rgb without being logged in") + return render_template('passwd.html') + @app.route("/get_login", methods=['POST']) def get_login(): @@ -493,15 +533,16 @@ def get_login(): con = sqlite3.connect("party.db") warning_log("verbindung mit db wurde aufgenommen") cur = con.cursor() - cur.execute(l) + cur.execute(l) con.commit() con.close() - # session['username'] = account['username'] + # session['username'] = account['username'] log_server("loggedin successfully") return redirect(f'/session/{sessionId}') - + con.close() + @app.route("/new", methods=['POST']) def new(): log_server("called /new with POST") @@ -513,27 +554,30 @@ def new(): con = sqlite3.connect("party.db") warning_log("verbindung mit db wurde aufgenommen") cur = con.cursor() - cur.execute(l) + cur.execute(l) con.commit() con.close() account = True - - # session['username'] = account['username'] + + # session['username'] = account['username'] log_server("created new user successfully") return redirect(f'/session/{sessionId}') - + con.close() + @app.errorhandler(404) def page_not_found(e): error_log("called non-existing page") # note that we set the 404 status explicitly return render_template('404.html'), 404 + def create_app(config_filename): app.register_error_handler(404, page_not_found) log_server("created app") return app + # Use this line to run it localy -#app.run(host="ip", port=80) +# app.run(host="", port=80) diff --git a/run.sh b/run.sh index 5c184d7..9cb0e8e 100755 --- a/run.sh +++ b/run.sh @@ -1,13 +1,16 @@ +#!/bin/sh python -c "import qrcode" if [ $? -eq 1 ]; then pip install qrcode -else - echo "qrcode package is installed" fi -cat party.sql | sqlite3 party.db + +md5sum -c .sums +if [ $? -eq 1 ]; then + rm party.db + cat party.sql | sqlite3 party.db +fi export FLASK_APP=main.py - - flask run +flask run diff --git a/templates/session.html b/templates/session.html index 651b5f8..a070891 100644 --- a/templates/session.html +++ b/templates/session.html @@ -34,9 +34,9 @@ - - - + + +