def map_captimes_data(request): map_id = int(request.matchdict['id']) current_page = request.params.get('page', 1) try: mmap = DBSession.query(Map).filter_by(map_id=map_id).one() mct_q = DBSession.query(PlayerCaptime.fastest_cap, PlayerCaptime.create_dt, PlayerCaptime.player_id, PlayerCaptime.game_id, Game.server_id, Server.name.label('server_name'), PlayerGameStat.nick.label('player_nick')).\ filter(PlayerCaptime.map_id==map_id).\ filter(PlayerCaptime.game_id==Game.game_id).\ filter(PlayerCaptime.map_id==Map.map_id).\ filter(Game.server_id==Server.server_id).\ filter(PlayerCaptime.player_id==PlayerGameStat.player_id).\ filter(PlayerCaptime.game_id==PlayerGameStat.game_id).\ order_by(expr.asc(PlayerCaptime.fastest_cap)) except Exception as e: raise HTTPNotFound map_captimes = Page(mct_q, current_page, items_per_page=20, url=page_url) map_captimes.items = [MapCapTime(row) for row in map_captimes.items] return { 'map_id':map_id, 'map':mmap, 'captimes':map_captimes, }
def player_game_index_data(request): try: player_id = int(request.matchdict['player_id']) except: player_id = -1 game_type_cd = None game_type_descr = None if request.params.has_key('type'): game_type_cd = request.params['type'] try: game_type_descr = DBSession.query(GameType.descr).\ filter(GameType.game_type_cd == game_type_cd).\ one()[0] except Exception as e: pass else: game_type_cd = None game_type_descr = None if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 try: player = DBSession.query(Player).\ filter_by(player_id=player_id).\ filter(Player.active_ind == True).\ one() rgs_q = recent_games_q(player_id=player.player_id, force_player_id=True, game_type_cd=game_type_cd) games = Page(rgs_q, current_page, items_per_page=20, url=page_url) # replace the items in the canned pagination class with more rich ones games.items = [RecentGame(row) for row in games.items] games_played = get_games_played(player_id) except Exception as e: raise e player = None games = None game_type_cd = None game_type_descr = None games_played = None return { 'player_id': player.player_id, 'player': player, 'games': games, 'game_type_cd': game_type_cd, 'game_type_descr': game_type_descr, 'games_played': games_played, }
def player_game_index_data(request): try: player_id = int(request.matchdict['player_id']) except: player_id = -1 game_type_cd = None game_type_descr = None if request.params.has_key('type'): game_type_cd = request.params['type'] try: game_type_descr = DBSession.query(GameType.descr).\ filter(GameType.game_type_cd == game_type_cd).\ one()[0] except Exception as e: pass else: game_type_cd = None game_type_descr = None if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 try: player = DBSession.query(Player).\ filter_by(player_id=player_id).\ filter(Player.active_ind == True).\ one() rgs_q = recent_games_q(player_id=player.player_id, force_player_id=True, game_type_cd=game_type_cd) games = Page(rgs_q, current_page, items_per_page=20, url=page_url) # replace the items in the canned pagination class with more rich ones games.items = [RecentGame(row) for row in games.items] games_played = get_games_played(player_id) except Exception as e: raise e player = None games = None game_type_cd = None game_type_descr = None games_played = None return { 'player_id':player.player_id, 'player':player, 'games':games, 'game_type_cd':game_type_cd, 'game_type_descr':game_type_descr, 'games_played':games_played, }
def top_players_by_time(request): return {'top_players': []} current_page = request.params.get('page', 1) cutoff_days = int(request.registry.settings.get('xonstat.leaderboard_lifetime', 30)) top_players_q = top_players_by_time_q(cutoff_days) top_players = Page(top_players_q, current_page, items_per_page=25, url=page_url) top_players.items = [(player_id, html_colors(nick), score) for (player_id, nick, score) in top_players.items] return {'top_players':top_players}
def player_game_index_data(request): RecentGame = namedtuple('RecentGame', [ 'game_id', 'game_type_cd', 'winner', 'game_create_dt', 'game_epoch', 'game_fuzzy', 'server_id', 'server_name', 'map_id', 'map_name', 'team', 'rank', 'elo_delta' ]) player_id = request.matchdict['player_id'] if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 try: player = DBSession.query(Player).filter_by(player_id=player_id).\ filter(Player.active_ind == True).one() games_q = DBSession.query(Game.game_id, Game.game_type_cd, Game.winner, Game.create_dt, Server.server_id, Server.name.label('server_name'), Map.map_id, Map.name.label('map_name'), PlayerGameStat.team, PlayerGameStat.rank, PlayerGameStat.elo_delta).\ filter(PlayerGameStat.game_id == Game.game_id).\ filter(PlayerGameStat.player_id == player_id).\ filter(Game.server_id == Server.server_id).\ filter(Game.map_id == Map.map_id).\ order_by(Game.game_id.desc()) games = Page(games_q, current_page, items_per_page=10, url=page_url) # replace the items in the canned pagination class with more rich ones games.items = [ RecentGame(game_id=row.game_id, game_type_cd=row.game_type_cd, winner=row.winner, game_create_dt=row.create_dt, game_epoch=timegm(row.create_dt.timetuple()), game_fuzzy=pretty_date(row.create_dt), server_id=row.server_id, server_name=row.server_name, map_id=row.map_id, map_name=row.map_name, team=row.team, rank=row.rank, elo_delta=row.elo_delta) for row in games.items ] except Exception as e: player = None games = None return { 'player_id': player.player_id, 'player': player, 'games': games, }
def game_finder_data(request): if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 query = {} server_id, map_id, player_id = None, None, None range_start, range_end, game_type_cd = None, None, None game_type_descr = None # these become WHERE clauses when present if request.params.has_key('server_id'): server_id = request.params['server_id'] query['server_id'] = server_id if request.params.has_key('map_id'): map_id = request.params['map_id'] query['map_id'] = map_id if request.params.has_key('player_id'): player_id = request.params['player_id'] query['player_id'] = player_id if request.params.has_key('range_start'): range_start = request.params['range_start'] query['range_start'] = range_start if request.params.has_key('range_end'): range_end = request.params['range_end'] query['range_end'] = range_end if request.params.has_key('type'): game_type_cd = request.params['type'] query['type'] = game_type_cd try: game_type_descr = DBSession.query(GameType.descr).\ filter(GameType.game_type_cd == game_type_cd).\ one()[0] except Exception as e: game_type_cd = None rgs_q = recent_games_q(server_id=server_id, map_id=map_id, player_id=player_id, game_type_cd=game_type_cd) recent_games = Page(rgs_q, current_page, url=page_url) recent_games.items = [RecentGame(row) for row in recent_games.items] return { 'recent_games':recent_games, 'query':query, 'game_type_cd':game_type_cd, }
def player_game_index_data(request): RecentGame = namedtuple('RecentGame', ['game_id', 'game_type_cd', 'winner', 'game_create_dt', 'game_epoch', 'game_fuzzy', 'server_id', 'server_name', 'map_id', 'map_name', 'team', 'rank', 'elo_delta']) player_id = request.matchdict['player_id'] if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 try: player = DBSession.query(Player).filter_by(player_id=player_id).\ filter(Player.active_ind == True).one() games_q = DBSession.query(Game.game_id, Game.game_type_cd, Game.winner, Game.create_dt, Server.server_id, Server.name.label('server_name'), Map.map_id, Map.name.label('map_name'), PlayerGameStat.team, PlayerGameStat.rank, PlayerGameStat.elo_delta).\ filter(PlayerGameStat.game_id == Game.game_id).\ filter(PlayerGameStat.player_id == player_id).\ filter(Game.server_id == Server.server_id).\ filter(Game.map_id == Map.map_id).\ order_by(Game.game_id.desc()) games = Page(games_q, current_page, items_per_page=10, url=page_url) # replace the items in the canned pagination class with more rich ones games.items = [RecentGame( game_id = row.game_id, game_type_cd = row.game_type_cd, winner = row.winner, game_create_dt = row.create_dt, game_epoch = timegm(row.create_dt.timetuple()), game_fuzzy = pretty_date(row.create_dt), server_id = row.server_id, server_name = row.server_name, map_id = row.map_id, map_name = row.map_name, team = row.team, rank = row.rank, elo_delta = row.elo_delta ) for row in games.items] except Exception as e: player = None games = None return { 'player_id':player.player_id, 'player':player, 'games':games, }
def player_captimes_data(request): player_id = int(request.matchdict['player_id']) if player_id <= 2: player_id = -1; page = request.params.get("page", 1) sort = request.params.get("sort", "create_dt") try: player = DBSession.query(Player).filter_by(player_id=player_id).one() pct_q = DBSession.query(PlayerCaptime.fastest_cap, PlayerCaptime.create_dt, PlayerCaptime.player_id, PlayerCaptime.game_id, PlayerCaptime.map_id, Map.name.label('map_name'), Game.server_id, Server.name.label('server_name')).\ filter(PlayerCaptime.player_id==player_id).\ filter(PlayerCaptime.game_id==Game.game_id).\ filter(PlayerCaptime.map_id==Map.map_id).\ filter(Game.server_id==Server.server_id) if sort == "fastest": pct_q = pct_q.order_by(PlayerCaptime.fastest_cap) else: sort = "create_dt" pct_q = pct_q.order_by(expr.desc(PlayerCaptime.create_dt)) except Exception as e: raise pyramid.httpexceptions.HTTPNotFound captimes = Page(pct_q, page, items_per_page=20, url=page_url) # replace the items in the canned pagination class with more rich ones captimes.items = [PlayerCapTime(row) for row in captimes.items] return { "player_id" : player_id, "player" : player, "captimes" : captimes, "page" : page, "sort" : sort, }
def player_captimes_data(request): player_id = int(request.matchdict['player_id']) if player_id <= 2: player_id = -1; if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 PlayerCaptimes = namedtuple('PlayerCaptimes', ['fastest_cap', 'create_dt', 'create_dt_epoch', 'create_dt_fuzzy', 'player_id', 'game_id', 'map_id', 'map_name', 'server_id', 'server_name']) player = DBSession.query(Player).filter_by(player_id=player_id).one() #pct_q = DBSession.query('fastest_cap', 'create_dt', 'player_id', 'game_id', 'map_id', # 'map_name', 'server_id', 'server_name').\ # from_statement( # "SELECT ct.fastest_cap, " # "ct.create_dt, " # "ct.player_id, " # "ct.game_id, " # "ct.map_id, " # "m.name map_name, " # "g.server_id, " # "s.name server_name " # "FROM player_map_captimes ct, " # "games g, " # "maps m, " # "servers s " # "WHERE ct.player_id = :player_id " # "AND g.game_id = ct.game_id " # "AND g.server_id = s.server_id " # "AND m.map_id = ct.map_id " # #"ORDER BY ct.fastest_cap " # "ORDER BY ct.create_dt desc" # ).params(player_id=player_id) try: pct_q = DBSession.query(PlayerCaptime.fastest_cap, PlayerCaptime.create_dt, PlayerCaptime.player_id, PlayerCaptime.game_id, PlayerCaptime.map_id, Map.name.label('map_name'), Game.server_id, Server.name.label('server_name')).\ filter(PlayerCaptime.player_id==player_id).\ filter(PlayerCaptime.game_id==Game.game_id).\ filter(PlayerCaptime.map_id==Map.map_id).\ filter(Game.server_id==Server.server_id).\ order_by(expr.desc(PlayerCaptime.create_dt)) player_captimes = Page(pct_q, current_page, items_per_page=20, url=page_url) # replace the items in the canned pagination class with more rich ones player_captimes.items = [PlayerCaptimes( fastest_cap=row.fastest_cap, create_dt=row.create_dt, create_dt_epoch=timegm(row.create_dt.timetuple()), create_dt_fuzzy=pretty_date(row.create_dt), player_id=row.player_id, game_id=row.game_id, map_id=row.map_id, map_name=row.map_name, server_id=row.server_id, server_name=row.server_name ) for row in player_captimes.items] except Exception as e: player = None player_captimes = None return { 'player_id':player_id, 'player':player, 'captimes':player_captimes, #'player_url':request.route_path('player_info', id=player_id), }
def player_captimes_data(request): player_id = int(request.matchdict['player_id']) if player_id <= 2: player_id = -1 if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 PlayerCaptimes = namedtuple('PlayerCaptimes', [ 'fastest_cap', 'create_dt', 'create_dt_epoch', 'create_dt_fuzzy', 'player_id', 'game_id', 'map_id', 'map_name', 'server_id', 'server_name' ]) player = DBSession.query(Player).filter_by(player_id=player_id).one() #pct_q = DBSession.query('fastest_cap', 'create_dt', 'player_id', 'game_id', 'map_id', # 'map_name', 'server_id', 'server_name').\ # from_statement( # "SELECT ct.fastest_cap, " # "ct.create_dt, " # "ct.player_id, " # "ct.game_id, " # "ct.map_id, " # "m.name map_name, " # "g.server_id, " # "s.name server_name " # "FROM player_map_captimes ct, " # "games g, " # "maps m, " # "servers s " # "WHERE ct.player_id = :player_id " # "AND g.game_id = ct.game_id " # "AND g.server_id = s.server_id " # "AND m.map_id = ct.map_id " # #"ORDER BY ct.fastest_cap " # "ORDER BY ct.create_dt desc" # ).params(player_id=player_id) try: pct_q = DBSession.query(PlayerCaptime.fastest_cap, PlayerCaptime.create_dt, PlayerCaptime.player_id, PlayerCaptime.game_id, PlayerCaptime.map_id, Map.name.label('map_name'), Game.server_id, Server.name.label('server_name')).\ filter(PlayerCaptime.player_id==player_id).\ filter(PlayerCaptime.game_id==Game.game_id).\ filter(PlayerCaptime.map_id==Map.map_id).\ filter(Game.server_id==Server.server_id).\ order_by(expr.desc(PlayerCaptime.create_dt)) player_captimes = Page(pct_q, current_page, items_per_page=20, url=page_url) # replace the items in the canned pagination class with more rich ones player_captimes.items = [ PlayerCaptimes(fastest_cap=row.fastest_cap, create_dt=row.create_dt, create_dt_epoch=timegm(row.create_dt.timetuple()), create_dt_fuzzy=pretty_date(row.create_dt), player_id=row.player_id, game_id=row.game_id, map_id=row.map_id, map_name=row.map_name, server_id=row.server_id, server_name=row.server_name) for row in player_captimes.items ] except Exception as e: player = None player_captimes = None return { 'player_id': player_id, 'player': player, 'captimes': player_captimes, #'player_url':request.route_path('player_info', id=player_id), }
def map_captimes_data(request): map_id = int(request.matchdict['id']) if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 MapCaptimes = namedtuple('PlayerCaptimes', ['fastest_cap', 'create_dt', 'create_dt_epoch', 'create_dt_fuzzy', 'player_id', 'player_nick', 'player_nick_stripped', 'player_nick_html', 'game_id', 'server_id', 'server_name']) mmap = DBSession.query(Map).filter_by(map_id=map_id).one() #mct_q = DBSession.query('fastest_cap', 'create_dt', 'player_id', 'game_id', # 'server_id', 'server_name', 'player_nick').\ # from_statement( # "SELECT ct.fastest_cap, " # "ct.create_dt, " # "ct.player_id, " # "ct.game_id, " # "g.server_id, " # "s.name server_name, " # "pgs.nick player_nick " # "FROM player_map_captimes ct, " # "games g, " # "maps m, " # "servers s, " # "player_game_stats pgs " # "WHERE ct.map_id = :map_id " # "AND g.game_id = ct.game_id " # "AND g.server_id = s.server_id " # "AND m.map_id = ct.map_id " # "AND pgs.player_id = ct.player_id " # "AND pgs.game_id = ct.game_id " # "ORDER BY ct.fastest_cap " # "LIMIT 25" # ).params(map_id=map_id) #try: if True: mct_q = DBSession.query(PlayerCaptime.fastest_cap, PlayerCaptime.create_dt, PlayerCaptime.player_id, PlayerCaptime.game_id, Game.server_id, Server.name.label('server_name'), PlayerGameStat.nick.label('player_nick')).\ filter(PlayerCaptime.map_id==map_id).\ filter(PlayerCaptime.game_id==Game.game_id).\ filter(PlayerCaptime.map_id==Map.map_id).\ filter(Game.server_id==Server.server_id).\ filter(PlayerCaptime.player_id==PlayerGameStat.player_id).\ filter(PlayerCaptime.game_id==PlayerGameStat.game_id).\ order_by(expr.asc(PlayerCaptime.fastest_cap)) map_captimes = Page(mct_q, current_page, items_per_page=20, url=page_url) map_captimes.items = [MapCaptimes( fastest_cap=row.fastest_cap, create_dt=row.create_dt, create_dt_epoch=timegm(row.create_dt.timetuple()), create_dt_fuzzy=pretty_date(row.create_dt), player_id=row.player_id, player_nick=row.player_nick, player_nick_stripped=strip_colors(row.player_nick), player_nick_html=html_colors(row.player_nick), game_id=row.game_id, server_id=row.server_id, server_name=row.server_name, ) for row in map_captimes.items] #except Exception as e: else: map = None map_captimes = None return { 'map_id':map_id, 'map':mmap, 'captimes':map_captimes, }
def map_captimes_data(request): map_id = int(request.matchdict['id']) if request.params.has_key('page'): current_page = request.params['page'] else: current_page = 1 MapCaptimes = namedtuple('PlayerCaptimes', [ 'fastest_cap', 'create_dt', 'create_dt_epoch', 'create_dt_fuzzy', 'player_id', 'player_nick', 'player_nick_stripped', 'player_nick_html', 'game_id', 'server_id', 'server_name' ]) mmap = DBSession.query(Map).filter_by(map_id=map_id).one() #mct_q = DBSession.query('fastest_cap', 'create_dt', 'player_id', 'game_id', # 'server_id', 'server_name', 'player_nick').\ # from_statement( # "SELECT ct.fastest_cap, " # "ct.create_dt, " # "ct.player_id, " # "ct.game_id, " # "g.server_id, " # "s.name server_name, " # "pgs.nick player_nick " # "FROM player_map_captimes ct, " # "games g, " # "maps m, " # "servers s, " # "player_game_stats pgs " # "WHERE ct.map_id = :map_id " # "AND g.game_id = ct.game_id " # "AND g.server_id = s.server_id " # "AND m.map_id = ct.map_id " # "AND pgs.player_id = ct.player_id " # "AND pgs.game_id = ct.game_id " # "ORDER BY ct.fastest_cap " # "LIMIT 25" # ).params(map_id=map_id) #try: if True: mct_q = DBSession.query(PlayerCaptime.fastest_cap, PlayerCaptime.create_dt, PlayerCaptime.player_id, PlayerCaptime.game_id, Game.server_id, Server.name.label('server_name'), PlayerGameStat.nick.label('player_nick')).\ filter(PlayerCaptime.map_id==map_id).\ filter(PlayerCaptime.game_id==Game.game_id).\ filter(PlayerCaptime.map_id==Map.map_id).\ filter(Game.server_id==Server.server_id).\ filter(PlayerCaptime.player_id==PlayerGameStat.player_id).\ filter(PlayerCaptime.game_id==PlayerGameStat.game_id).\ order_by(expr.asc(PlayerCaptime.fastest_cap)) map_captimes = Page(mct_q, current_page, items_per_page=20, url=page_url) map_captimes.items = [ MapCaptimes( fastest_cap=row.fastest_cap, create_dt=row.create_dt, create_dt_epoch=timegm(row.create_dt.timetuple()), create_dt_fuzzy=pretty_date(row.create_dt), player_id=row.player_id, player_nick=row.player_nick, player_nick_stripped=strip_colors(row.player_nick), player_nick_html=html_colors(row.player_nick), game_id=row.game_id, server_id=row.server_id, server_name=row.server_name, ) for row in map_captimes.items ] #except Exception as e: else: map = None map_captimes = None return { 'map_id': map_id, 'map': mmap, 'captimes': map_captimes, }