diff --git a/python/backends/database.py b/python/backends/database.py index 11b29db..6609251 100644 --- a/python/backends/database.py +++ b/python/backends/database.py @@ -23,6 +23,17 @@ def getPlayer(playerId): finally: conn.close() +def getPlayerRank(player): + '''Get a players current rank, seperate function because this query is relatively expensive''' + + conn = sqlite3.connect("players.sqlite") + cursor = conn.cursor() + cursor.execute("SELECT COUNT(*) from players where (mu-2*sigma) > (?-2*?);", + (player.rating.mu, player.rating.sigma)) + rank = cursor.fetchone()[0] + conn.close() + return rank + def getOrCreatePlayer(player): playerInDb = getPlayer(player.id) if not playerInDb: diff --git a/python/httpAPI.py b/python/httpAPI.py index c9abd1c..81ffcd8 100644 --- a/python/httpAPI.py +++ b/python/httpAPI.py @@ -23,7 +23,7 @@ def getPlayer(): p = db.getPlayer(playerId) if not p: return ("Player not found", 404) - return "{}'s Rating: {}".format(p.name, int(p.rating.mu - 2*p.rating.sigma)) + return "{}'s Rating: {} (Rank {})".format(p.name, int(p.rating.mu - 2*p.rating.sigma), db.getPlayerRank(p)) @app.route('/get-outcome-prediction', methods=["POST"]) def getOutcomePrediction():