diff --git a/database.py b/database.py
index ca2df5c..f792d9c 100644
--- a/database.py
+++ b/database.py
@@ -3,6 +3,7 @@ import json
import sqlite3
import player
import os
+import datetime
import Round
DATABASE_PLAYERS = "players.sqlite"
@@ -148,7 +149,7 @@ class DatabaseConnection:
continue
cursorHist.execute('''SELECT mu,sima FROM playerHistoricalData
- WHERE timestamp < ? AND id = ? LIMIT 1 ''',
+ WHERE timestamp < ? AND id = ? order by timestamp DESC LIMIT 1 ''',
(roundObj.startTime.timestamp(), p.playerId))
tupelPrev = cursorHist.fetchone()
cursorHist.execute('''SELECT mu,sima FROM playerHistoricalData
@@ -163,20 +164,23 @@ class DatabaseConnection:
p.muChange = muAfter - muPrev
p.sigmaChange = sigmaAfter - sigmaPrev
ratingChange = int( (muAfter-muPrev) - 2*(sigmaAfter-sigmaPrev) )
+ if abs(ratingChange) > 500:
+ p.ratingChangeString = "Placements"
+ continue
if(ratingChange < 0):
p.ratingChangeString = "- {:x>5}".format(abs(ratingChange))
else:
p.ratingChangeString = "+ {:x>5}".format(ratingChange)
p.ratingChangeString = p.ratingChangeString.replace("x", " ")
- roundObj.winnerRatingTotal = sum([p.mu - 2*p.sigma for p in roundObj.winners])
- roundObj.losersRatingTotal = sum([p.mu - 2*p.sigma for p in roundObj.losers])
- higher = max(roundObj.winnerRatingTotal, roundObj.losersRatingTotal)
- lower = min(roundObj.winnerRatingTotal, roundObj.losersRatingTotal)
- if higher/lower > 2.1:
- roundObj.invalid = "Not rated because of team imbalance."
- else:
- roundObj.invalid = ""
+ roundObj.invalid = ""
+ roundObj.teamPtRatio = 0
+ if roundObj.teamPtRatio > 2.1:
+ roundObj.invalid += "Not rated because of playtime imbalance."
+ if roundObj.duration < datetime.timedelta(seconds=120):
+ if roundObj.invalid:
+ roundObj.invalid += "
"
+ roundObj.invalid += "Not rated because too short."
return roundObj
diff --git a/server.py b/server.py
index 8358406..f889aba 100755
--- a/server.py
+++ b/server.py
@@ -97,6 +97,7 @@ def player():
csv_month_year = []
csv_ratings = []
+ csv_timestamps = []
minRating = 3000
maxRating = 0
@@ -111,6 +112,7 @@ def player():
tsMs = str(int(t.timestamp() * 1000))
ratingString = str(int(datapoints[dpk]["mu"]) - 2*int(datapoints[dpk]["sigma"]))
ratingAmored = '{ x : ' + tsMs + ', y : ' + ratingString + '}'
+ csv_timestamps += [str(tsMs)]
csv_ratings += [ratingAmored]
tickCounter -= 1
@@ -128,6 +130,7 @@ def player():
return flask.render_template("player.html", player=player, CSV_RATINGS=",".join(csv_ratings),
CSV_MONTH_YEAR_OF_RATINGS=",".join(csv_month_year),
+ CSV_TIMESTAMPS=csv_timestamps,
Y_MIN=yMin, Y_MAX=yMax)
@app.route('/leaderboard')
diff --git a/templates/single_round.html b/templates/single_round.html
index fa61f0b..696d8d4 100644
--- a/templates/single_round.html
+++ b/templates/single_round.html
@@ -8,16 +8,24 @@
{% include 'navbar.html' %}
-
Round {{ r.id }}
-
{{ r.startTime }}
-
Map: {{ r.mapName }}
-
Duration: {{ r.duration }}
+
+
+
+
Round {{ r.id }}
+
{{ r.startTime }}
+
Map: {{ r.mapName }}
+
Duration: {{ r.duration }}
- {% if r.invalid %}
-
-
{{ r.invalid }}
+ {% if r.invalid %}
+
+
{{ r.invalid | safe }}
+
+ {% endif %}
+
+
+
+
- {% endif %}
@@ -69,6 +77,11 @@
{% endfor %}
+
+
+ Stats for nerds
+ Balance: {{ 100 - r.confidence }}%
+
{% include 'footer.html' %}