+import json
import logging
import math
import sqlalchemy
-import sqlalchemy.sql.functions as func
+import sqlalchemy.sql.functions as sfunc
from datetime import timedelta
from sqlalchemy.orm import mapper
from sqlalchemy.orm import scoped_session
def __repr__(self):
return "<Map(%s, %s, %s)>" % (self.map_id, self.name, self.version)
+ def to_dict(self):
+ return {'map_id':self.map_id, 'name':self.name}
+
class Game(object):
def __init__(self, game_id=None, start_dt=None, game_type_cd=None,
# we do not have the actual duration of the game, so use the
# maximum alivetime of the players instead
duration = 0
- for d in session.query(func.max(PlayerGameStat.alivetime)).\
+ for d in session.query(sfunc.max(PlayerGameStat.alivetime)).\
filter(PlayerGameStat.game_id==self.game_id).\
one():
duration = d.seconds
(self.player_id, self.game_type_cd, self.elo)
+class PlayerRank(object):
+
+ def nick_html_colors(self):
+ if self.nick is None:
+ return "Anonymous Player"
+ else:
+ return html_colors(self.nick)
+
+
+ def __repr__(self):
+ return "<PlayerRank(pid=%s, gametype=%s, rank=%s)>" % \
+ (self.player_id, self.game_type_cd, self.rank)
+
+
def initialize_db(engine=None):
DBSession.configure(bind=engine)
Base.metadata.bind = engine
servers_table = MetaData.tables['servers']
player_nicks_table = MetaData.tables['player_nicks']
player_elos_table = MetaData.tables['player_elos']
+ player_ranks_table = MetaData.tables['player_ranks']
# now map the tables and the objects together
mapper(PlayerAchievement, achievements_table)
mapper(Server, servers_table)
mapper(PlayerNick, player_nicks_table)
mapper(PlayerElo, player_elos_table)
+ mapper(PlayerRank, player_ranks_table)