1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
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/<team>/<username>', 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/<team>/<username>', methods=["GET"])
def user_points(team, username):
return {"points": points.get_user_points(sanitise(team), sanitise(username))}
@app.route('/points/<team>/', 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/<team>", 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 ""
|