fix teambalance query

This commit is contained in:
Yannik Schmidt
2020-02-01 11:09:46 +01:00
parent 24adb57104
commit 99fa086a3f
2 changed files with 18 additions and 9 deletions

View File

@@ -150,7 +150,7 @@ def getPlayerRank(playerID):
except KeyError: except KeyError:
return "N/A" return "N/A"
def getBalancedTeams(players, buddies=None, teamCount=2): def getBalancedTeams(players, buddies=None, teamCount=2, useNames=False):
'''Balance a number of players into teams''' '''Balance a number of players into teams'''
if teamCount != 2: if teamCount != 2:
@@ -158,17 +158,25 @@ def getBalancedTeams(players, buddies=None, teamCount=2):
if not players: if not players:
return ValueError("Input contains no players") return ValueError("Input contains no players")
if type(players[0]) == str: if useNames:
players = [ Player.DummyPlayer(searchPlayerByName(playerID)[0][0]) for playerID in players ]
elif type(players[0]) == str:
players = [ Player.DummyPlayer(playerID) for playerID in players] players = [ Player.DummyPlayer(playerID) for playerID in players]
sync_from_database(players) sync_from_database(players)
arr = sorted(players, key=lambda x: x.rating.mu, reverse=True) sortedPlayers = sorted(players, key=lambda x: x.rating.mu, reverse=True)
team1Rating = 0
team2Rating = 0
ret = "" ret = ""
i = 0
while i < len(arr): for p in sortedPlayers:
ret += "{}|{},".format(players[i].name,(i%2)+2) if team1Rating <= team2Rating:
i += 1 ret += "{}|{},".format(p.name, 2)
team1Rating += p.rating.mu
else:
ret += "{}|{},".format(p.name, 3)
team2Rating += p.rating.mu
return ret return ret
def qualityForTeams(teamArray, useNames=False): def qualityForTeams(teamArray, useNames=False):

View File

@@ -46,7 +46,8 @@ def hasChanged():
@app.route('/getbalancedteams') @app.route('/getbalancedteams')
def getBalancedTeams(): def getBalancedTeams():
players = flask.request.args.get("players").split(",") players = flask.request.args.get("players").split(",")
return SB.getBalancedTeams(players) useNames = flask.request.args.get("names")
return SB.getBalancedTeams(players, useNames=bool(useNames))
@app.route('/quality') @app.route('/quality')
def quality(): def quality():