X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=xonstat%2Fviews%2Fmain.py;h=d3a472517ecd811270ad7aa5d33115ca16f535aa;hb=b8191d441a2a7b0353331e619a3481d00e324c70;hp=22b12918eeeae7df0baa3fbc31978eb54e779a14;hpb=1be837fea8fa3e48095a3ddf3fbfcce8cf7387e3;p=xonotic%2Fxonstat.git diff --git a/xonstat/views/main.py b/xonstat/views/main.py index 22b1291..d3a4725 100755 --- a/xonstat/views/main.py +++ b/xonstat/views/main.py @@ -18,6 +18,42 @@ def main_index(request): leaderboard_count = 10 recent_games_count = 20 + # top ranked duelers + duel_ranks = DBSession.query(Player.player_id, Player.nick, PlayerElo.elo).\ + filter(Player.player_id==PlayerElo.player_id).\ + filter(PlayerElo.game_type_cd=='duel').\ + order_by(expr.desc(PlayerElo.elo)).all()[0:10] + + duel_ranks = [(player_id, html_colors(nick), elo) \ + for (player_id, nick, elo) in duel_ranks] + + for i in range(leaderboard_count-len(duel_ranks)): + duel_ranks.append(('-', '-', '-')) + + # top ranked CTF-ers + ctf_ranks = DBSession.query(Player.player_id, Player.nick, PlayerElo.elo).\ + filter(Player.player_id==PlayerElo.player_id).\ + filter(PlayerElo.game_type_cd=='ctf').\ + order_by(expr.desc(PlayerElo.elo)).all()[0:10] + + ctf_ranks = [(player_id, html_colors(nick), elo) \ + for (player_id, nick, elo) in ctf_ranks] + + for i in range(leaderboard_count-len(ctf_ranks)): + ctf_ranks.append(('-', '-', '-')) + + # top ranked DM-ers + dm_ranks = DBSession.query(Player.player_id, Player.nick, PlayerElo.elo).\ + filter(Player.player_id==PlayerElo.player_id).\ + filter(PlayerElo.game_type_cd=='dm').\ + order_by(expr.desc(PlayerElo.elo)).all()[0:10] + + dm_ranks = [(player_id, html_colors(nick), elo) \ + for (player_id, nick, elo) in dm_ranks] + + for i in range(leaderboard_count-len(dm_ranks)): + dm_ranks.append(('-', '-', '-')) + # top players by playing time top_players = DBSession.query(Player.player_id, Player.nick, func.sum(PlayerGameStat.alivetime)).\ @@ -76,4 +112,7 @@ def main_index(request): 'top_servers':top_servers, 'top_maps':top_maps, 'recent_games':recent_games, + 'duel_ranks':duel_ranks, + 'ctf_ranks':ctf_ranks, + 'dm_ranks':dm_ranks, }