mirror of
https://github.com/FAUSheppy/skillbird
synced 2025-12-06 06:51:34 +01:00
62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
#!/usr/bin/python3
|
|
import StorrageBackend as SB
|
|
import flask
|
|
|
|
|
|
app = flask.Flask("skillbird")
|
|
|
|
################## HTML HELPER ########################
|
|
def invalidParameters(*args):
|
|
return "500 - Invalid {}".format(args)
|
|
|
|
########################################################
|
|
|
|
@app.route('/dumpdebug')
|
|
def dumpDebug():
|
|
return "<br>".join(SB.debugInformation())
|
|
|
|
@app.route('/getplayer')
|
|
def getPlayer():
|
|
playerName = flask.request.args.get("name")
|
|
return str(SB.searchPlayerByName(playerName))
|
|
|
|
@app.route('/getmaxentries')
|
|
def getMaxEntries():
|
|
return str(SB.getRankListLength())
|
|
|
|
@app.route('/rankrange')
|
|
def getRankRange():
|
|
try:
|
|
start = int(flask.request.args.get("start"))
|
|
end = int(flask.request.args.get("end"))
|
|
if end - start <= 0 or end - start > 100:
|
|
raise ValueError()
|
|
except ValueError:
|
|
return invalidParameters(start, end)
|
|
|
|
players = SB.getRankRange(start, end)
|
|
return "\n".join([p.serialize() for p in players])
|
|
|
|
@app.route('/haschanged')
|
|
def hasChanged():
|
|
string = flask.request.args.get("time")
|
|
# TODO get time with timezone
|
|
return SB.rankHasChanged(localizedTime)
|
|
|
|
@app.route('/getbalancedteams')
|
|
def getBalancedTeams():
|
|
players = flask.request.args.get("players").split(",")
|
|
useNames = flask.request.args.get("names")
|
|
return SB.getBalancedTeams(players, useNames=bool(useNames))
|
|
|
|
@app.route('/quality')
|
|
def quality():
|
|
'''Get a game quality estimate for two or more given teams'''
|
|
string = flask.request.args.get("playerswithteams")
|
|
useNames = flask.request.args.get("names")
|
|
teams = string.split("|")
|
|
if len(teams) < 2:
|
|
flask.abort("Invalid input string: {}".format(string))
|
|
teams = [ x.split(",") for x in teams ]
|
|
return SB.qualityForTeams(teams, useNames=bool(useNames))
|