]> git.xonotic.org Git - xonotic/xonstat.git/blob - xonstat/views/server.py
Major reorganization. Views made into a module with all of the sub-portions categorized.
[xonotic/xonstat.git] / xonstat / views / server.py
1 import datetime\r
2 import logging\r
3 import time\r
4 from pyramid.response import Response\r
5 from sqlalchemy import desc\r
6 from webhelpers.paginate import Page, PageURL\r
7 from xonstat.models import *\r
8 from xonstat.util import page_url\r
9 \r
10 log = logging.getLogger(__name__)\r
11 \r
12 \r
13 def server_info(request):\r
14     """\r
15     List the stored information about a given server.\r
16     """\r
17     server_id = request.matchdict['id']\r
18     try:\r
19         server = DBSession.query(Server).filter_by(server_id=server_id).one()\r
20         recent_games = DBSession.query(Game, Server, Map).\\r
21                 filter(Game.server_id == server_id).\\r
22                 filter(Game.server_id == Server.server_id).\\r
23                 filter(Game.map_id == Map.map_id).\\r
24                 order_by(Game.game_id.desc())[0:10]\r
25 \r
26     except Exception as e:\r
27         server = None\r
28         recent_games = None\r
29     return {'server':server,\r
30             'recent_games':recent_games}\r
31 \r
32 \r
33 def server_game_index(request):\r
34     """\r
35     List the games played on a given server. Paginated.\r
36     """\r
37     server_id = request.matchdict['server_id']\r
38     current_page = request.matchdict['page']\r
39 \r
40     try:\r
41         server = DBSession.query(Server).filter_by(server_id=server_id).one()\r
42 \r
43         games_q = DBSession.query(Game, Server, Map).\\r
44                 filter(Game.server_id == server_id).\\r
45                 filter(Game.server_id == Server.server_id).\\r
46                 filter(Game.map_id == Map.map_id).\\r
47                 order_by(Game.game_id.desc())\r
48 \r
49         games = Page(games_q, current_page, url=page_url)\r
50     except Exception as e:\r
51         server = None\r
52         games = None\r
53         raise e\r
54 \r
55     return {'games':games,\r
56             'server':server}\r