from flask import Flask, request from flask_cors import CORS from werkzeug.middleware.proxy_fix import ProxyFix import points app = Flask(__name__) app.wsgi_app = ProxyFix( app.wsgi_app, x_for=1, x_proto=1, x_host=1, x_prefix=1 ) CORS(app) @app.route("/") def ping(): return "🀄" TEAMS = ["green", "purple"] points.init_databases(TEAMS) def sanitise(string): return string.lower() @app.route('/increment//', methods=["POST"]) def increment_user_points(team, username): team = team.lower() multiplier = points.get_multiplier(team) return {"points": points.increment_points(sanitise(team), sanitise(username), float(multiplier))} @app.route('/points//', methods=["GET"]) def user_points(team, username): return {"points": points.get_user_points(sanitise(team), sanitise(username))} @app.route('/points//', methods=["GET"]) def get_team_points(team): return {"points": points.get_team_points(sanitise(team))} @app.route("/leaderboard/", methods=["GET"]) def get_leaderboard(): return points.get_leaderboard() @app.route("/multiplier/", methods=["GET", "POST"]) def multiplier(team): if request.method == "GET": return {"multiplier": points.get_multiplier(sanitise(team))} else: data = request.get_json() if "multiplier" in data: return {"multiplier": points.set_multiplier(sanitise(team), data["multiplier"])} return "", 400 @app.route("/prompt/", methods=["GET", "POST"]) def prompt(): if request.method == "GET": return {"prompt": points.get_prompt()} else: data = request.get_json() if "prompt" in data: return {"prompt": points.set_prompt(data["prompt"])} return "", 400 @app.route("/clear/", methods=["POST"]) def clear(): points.init_databases(TEAMS, clear=True) return ""