[git fast commit] 10. Feb 2019 - 11:55:03

This commit is contained in:
Yannik Schmidt
2019-02-10 11:55:03 +01:00
parent 41ecc1f1aa
commit da92eedf74
4 changed files with 17 additions and 7 deletions

View File

@@ -29,5 +29,5 @@ def t_listen(conn):
if type(ret) == str:
ret = ret.encode("utf-8")
conn.send(ret)
except Exception:
except IOError:
pass

View File

@@ -62,7 +62,7 @@ class PlayerInRound(Player):
return PlayerInRound(steamid, name, team, active_time)
class PlayerForDatabase(Player):
def __init__(self,steamid,name,rating,player=None):
def __init__(self,steamid, name, rating, lastUpdate=None, player=None):
if player:
self.steamid = player.steamid
self.name = player.name
@@ -71,6 +71,7 @@ class PlayerForDatabase(Player):
self.steamid = steamid
self.name = name
self.rating = rating
self.lastUpdate = lastUpdate
self.games = 0
self.wins = 0
def winratio(self):

View File

@@ -31,6 +31,8 @@ def get_player_rank(p):
def dumpRatings(top=0, forceMeanSort=False, enforceWhitelist=None):
global known_players
ret = ""
updatePlayerRanks(force=True)
if forceMeanSort:
sort = sorted(known_players.values(),key=lambda x: x.rating.mu,reverse=True)
else:
@@ -58,7 +60,11 @@ def sync_from_database(players):
if type(players) == dict:
players[p] = p.rating
else:
known_players.update({Player.DummyPlayer(p.steamid, p.name):Player.PlayerForDatabase(None,None,None,player=p)})
lastUpdate = datetime.now()
known_players.update(\
{ Player.DummyPlayer(p.steamid, p.name) : \
Player.PlayerForDatabase(None, None, None, player=p, lastUpdate=lastUpdate)\
})
def sync_to_database(players, win):
for p in players:
@@ -66,6 +72,7 @@ def sync_to_database(players, win):
if win:
known_players[p].wins += 1
known_players[p].games += 1
known_players[p].lastUpdate = datetime.now()
updatePlayerRanks()
@@ -76,6 +83,8 @@ def updatePlayerRanks(force=False):
if force or last_rank_update - datetime.now() > timedelta(seconds=240):
last_rank_update = datetime.now()
s = sorted(known_players.values(), key=lambda x: TS.get_env().expose(x.rating),reverse=True)
now = datetime.now()
s = filter(lambda p: now - p.lastUpdate < timedelta(days=60), s)
rank = 1
for p in s:
if p in player_ranks:

View File

@@ -190,7 +190,7 @@ def create_event(etype,line,timestamp):
else:
raise Exception("Cannot create event from logline. (etype was: '{}')".format(etype))
def parseDate(line):
def parseDate(l):
if ": L " in l.split("0x42")[0]:
timestamp = datetime.strptime(l.split(": L ")[1].split(": [")[0],"%m/%d/%Y - %H:%M:%S")
else:
@@ -202,12 +202,12 @@ def parse_line_to_event(l):
tmp = l.split("0x42,")[1].strip("\n")
etype = tmp.split(",")[0].split("|")[0]
try:
timestamp = parseDate(l)
event = create_event(etype,tmp,timestamp)
timestamp = parseDate(line)
except ValueError:
print(" ---- NO TIME ---- | WARNING: Failed to parse time for event, SKIP")
return None
except Exception as e:
except IndexError as e:
print("Failed to parse Event in line, skipping: {}".format(str(e)))
return None