]> de.git.xonotic.org Git - xonotic/xonstat.git/blobdiff - xonstat/views/map.py
Move MapCapTime and PlayerCapTime to models.
[xonotic/xonstat.git] / xonstat / views / map.py
index 57665e3c426a799f41140ad1f045aa4469bfb48a..f43ee35efd17b88bb12db01ef8f56d519f85e906 100644 (file)
@@ -164,51 +164,28 @@ def map_info_json(request):
     return [{'status':'not implemented'}]
 
 
-class MapCapTime(object):
-    def __init__(self, row):
-        self.fastest_cap          = row.fastest_cap
-        self.create_dt            = row.create_dt
-        self.create_dt_epoch      = timegm(row.create_dt.timetuple())
-        self.create_dt_fuzzy      = pretty_date(row.create_dt)
-        self.player_id            = row.player_id
-        self.player_nick          = row.player_nick
-        self.player_nick_stripped = strip_colors(row.player_nick)
-        self.player_nick_html     = html_colors(row.player_nick)
-        self.game_id              = row.game_id
-        self.server_id            = row.server_id
-        self.server_name          = row.server_name
-
-    def to_dict(self):
-        return {
-            "fastest_cap"          : self.fastest_cap.total_seconds(),
-            "create_dt_epoch"      : self.create_dt_epoch,
-            "create_dt_fuzzy"      : self.create_dt_fuzzy,
-            "player_id"            : self.player_id,
-            "player_nick"          : self.player_nick,
-            "player_nick_stripped" : self.player_nick_stripped,
-            "game_id"              : self.game_id,
-            "server_id"            : self.server_id,
-            "server_name"          : self.server_name,
-            }
-
 def map_captimes_data(request):
     map_id = int(request.matchdict['id'])
 
     current_page = request.params.get('page', 1)
 
-    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))
+    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 pyramid.httpexceptions.HTTPNotFound
 
     map_captimes = Page(mct_q, current_page, items_per_page=20, url=page_url)