[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: if type(ret) == str:
ret = ret.encode("utf-8") ret = ret.encode("utf-8")
conn.send(ret) conn.send(ret)
except Exception: except IOError:
pass pass

View File

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

View File

@@ -31,6 +31,8 @@ def get_player_rank(p):
def dumpRatings(top=0, forceMeanSort=False, enforceWhitelist=None): def dumpRatings(top=0, forceMeanSort=False, enforceWhitelist=None):
global known_players global known_players
ret = "" ret = ""
updatePlayerRanks(force=True)
if forceMeanSort: if forceMeanSort:
sort = sorted(known_players.values(),key=lambda x: x.rating.mu,reverse=True) sort = sorted(known_players.values(),key=lambda x: x.rating.mu,reverse=True)
else: else:
@@ -58,7 +60,11 @@ def sync_from_database(players):
if type(players) == dict: if type(players) == dict:
players[p] = p.rating players[p] = p.rating
else: 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): def sync_to_database(players, win):
for p in players: for p in players:
@@ -66,6 +72,7 @@ def sync_to_database(players, win):
if win: if win:
known_players[p].wins += 1 known_players[p].wins += 1
known_players[p].games += 1 known_players[p].games += 1
known_players[p].lastUpdate = datetime.now()
updatePlayerRanks() updatePlayerRanks()
@@ -75,7 +82,9 @@ def updatePlayerRanks(force=False):
if force or last_rank_update - datetime.now() > timedelta(seconds=240): if force or last_rank_update - datetime.now() > timedelta(seconds=240):
last_rank_update = datetime.now() last_rank_update = datetime.now()
s = sorted(known_players.values(),key=lambda x: TS.get_env().expose(x.rating),reverse=True) 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 rank = 1
for p in s: for p in s:
if p in player_ranks: if p in player_ranks:

View File

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