X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonstat.git;a=blobdiff_plain;f=xonstat%2Fmodels.py;h=6cf94b83d7fae11b30b1280afe82d3da63b933ed;hp=bda038bc82e9ba8b403e43364b5f6561774ca167;hb=6132f18ccad967c8ad3ce007bd3634db1e15a447;hpb=82f90469bf71496c6e639da83af04488e0979b16 diff --git a/xonstat/models.py b/xonstat/models.py index bda038b..6cf94b8 100644 --- a/xonstat/models.py +++ b/xonstat/models.py @@ -178,7 +178,10 @@ class PlayerAchievement(object): class PlayerWeaponStat(object): - def __init__(self): + def __init__(self, player_id=None, game_id=None, weapon_cd=None): + self.player_id = player_id + self.game_id = game_id + self.weapon_cd = weapon_cd self.fired = 0 self.max = 0 self.hit = 0 @@ -189,7 +192,17 @@ class PlayerWeaponStat(object): return "" % (self.player_weapon_stats_id, self.player_id, self.game_id) def to_dict(self): - return {'player_weapon_stats_id':self.player_weapon_stats_id, 'player_id':self.player_id, 'game_id':self.game_id} + return { + 'weapon_cd':self.weapon_cd, + 'player_weapon_stats_id':self.player_weapon_stats_id, + 'player_id':self.player_id, + 'game_id':self.game_id, + 'fired':self.fired, + 'max':self.max, + 'hit':self.hit, + 'actual':self.actual, + 'frags':self.frags, + } class Hashkey(object): @@ -254,17 +267,67 @@ class PlayerCaptime(object): def __repr__(self): return "" % (self.player_id, self.map_id) + def fuzzy_date(self): + return pretty_date(self.create_dt) + + def epoch(self): + return timegm(self.create_dt.timetuple()) + class SummaryStat(object): def __repr__(self): return "" % (self.total_players, self.total_games, self.total_servers) +class TeamGameStat(object): + def __init__(self, team_game_stat_id=None, create_dt=None): + self.team_game_stat_id = team_game_stat_id + self.create_dt = create_dt + + def __repr__(self): + return "" % (self.team_game_stat_id, self.game_id, self.team) + + def to_dict(self): + return { + 'team_game_stat_id':self.team_game_stat_id, + 'game_id':self.game_id, + 'team':self.team, + 'score':self.score, + 'rounds':self.rounds, + 'caps':self.caps, + 'create_dt':self.create_dt.strftime('%Y-%m-%dT%H:%M:%SZ'), + } + + def team_html_color(self): + if self.team == 5: + return "red" + if self.team == 14: + return "blue" + if self.team == 13: + return "yellow" + if self.team == 10: + return "pink" + + +class PlayerGameAnticheat(object): + def __init__(self, player_id=None, game_id=None, key=None, + value=None, create_dt=None): + self.player_id = player_id + self.game_id = game_id + self.key = key + self.value = value + self.create_dt = create_dt + + def __repr__(self): + return "" % (self.key, self.value) + + def initialize_db(engine=None): DBSession.configure(bind=engine) Base.metadata.bind = engine Base.metadata.create_all(engine) - MetaData = sqlalchemy.MetaData(bind=engine, reflect=True) + MetaData = sqlalchemy.MetaData(bind=engine) + MetaData.reflect() # assign all those tables to an object achievements_table = MetaData.tables['achievements'] @@ -284,6 +347,8 @@ def initialize_db(engine=None): player_ranks_table = MetaData.tables['player_ranks'] player_captimes_table = MetaData.tables['player_map_captimes'] summary_stats_table = MetaData.tables['summary_stats'] + team_game_stats_table = MetaData.tables['team_game_stats'] + player_game_anticheats_table = MetaData.tables['player_game_anticheats'] # now map the tables and the objects together mapper(PlayerAchievement, achievements_table) @@ -302,3 +367,5 @@ def initialize_db(engine=None): mapper(PlayerRank, player_ranks_table) mapper(PlayerCaptime, player_captimes_table) mapper(SummaryStat, summary_stats_table) + mapper(TeamGameStat, team_game_stats_table) + mapper(PlayerGameAnticheat, player_game_anticheats_table)