1 import sqlalchemy as sa
2 import sqlalchemy.sql.functions as func
3 from xonstat.models import *
4 from xonstat.views.player import get_games_played, get_overall_stats, get_ranks, get_elos
9 # player data, will be filled by get_data()
15 def __getattr__(self, key):
16 if self.data.has_key(key):
21 def get_data(self, player_id):
22 """Return player data as dict.
24 This function is similar to the function in player.py but more optimized
31 # duel/dm/tdm/ctf elo + rank
32 player = DBSession.query(Player).filter_by(player_id=player_id).\
33 filter(Player.active_ind == True).one()
34 games_played = get_games_played(player_id)
35 overall_stats = get_overall_stats(player_id)
36 ranks = get_ranks(player_id)
37 elos = get_elos(player_id)
39 games_played_dict = {}
40 for game in games_played:
41 games_played_dict[game.game_type_cd] = game
44 for gt,rank in ranks.items():
45 ranks_dict[gt] = (rank.rank, rank.max_rank)
48 for gt,elo in elos.items():
50 elos_dict[gt] = elo.elo
54 'games_played':games_played_dict,
55 'overall_stats':overall_stats,