]> de.git.xonotic.org Git - xonotic/xonstat.git/blob - xonstat/models/map.py
Make models a package instead of being a single (huge) module.
[xonotic/xonstat.git] / xonstat / models / map.py
1 from calendar import timegm
2
3 from xonstat.util import pretty_date, strip_colors, html_colors
4
5
6 class Map(object):
7     def __init__(self, name=None):
8         self.name = name
9
10     def __repr__(self):
11         return "<Map(%s, %s, %s)>" % (self.map_id, self.name, self.version)
12
13     def to_dict(self):
14         return {'map_id':self.map_id, 'name':self.name, 'version':self.version,}
15
16     def fuzzy_date(self):
17         return pretty_date(self.create_dt)
18
19     def epoch(self):
20         return timegm(self.create_dt.timetuple())
21
22
23 class MapCapTime(object):
24     """Fastest flag capture times per map, assembled from a SQLAlchemy query"""
25     def __init__(self, row):
26         self.fastest_cap          = row.fastest_cap
27         self.create_dt            = row.create_dt
28         self.create_dt_epoch      = timegm(row.create_dt.timetuple())
29         self.create_dt_fuzzy      = pretty_date(row.create_dt)
30         self.player_id            = row.player_id
31         self.player_nick          = row.player_nick
32         self.player_nick_stripped = strip_colors(row.player_nick)
33         self.player_nick_html     = html_colors(row.player_nick)
34         self.game_id              = row.game_id
35         self.server_id            = row.server_id
36         self.server_name          = row.server_name
37
38     def to_dict(self):
39         return {
40             "fastest_cap"          : self.fastest_cap.total_seconds(),
41             "create_dt_epoch"      : self.create_dt_epoch,
42             "create_dt_fuzzy"      : self.create_dt_fuzzy,
43             "player_id"            : self.player_id,
44             "player_nick"          : self.player_nick,
45             "player_nick_stripped" : self.player_nick_stripped,
46             "game_id"              : self.game_id,
47             "server_id"            : self.server_id,
48             "server_name"          : self.server_name,
49             }