2 Models related to the main index page.
6 from xonstat.util import html_colors
9 class SummaryStat(object):
11 The high level summary line that is shown on the main page.
15 return ("<SummaryStat(total_players={0.total_players}, total_games={0.total_games}, "
16 "total_servers={0.total_servers})>".format(self))
19 class ActivePlayer(object):
21 A record in the "Most Active Players" list.
24 def __init__(self, sort_order=None, player_id=None, nick=None, alivetime=None):
25 self.sort_order = sort_order
26 self.player_id = player_id
28 self.alivetime = alivetime
30 def nick_html_colors(self):
31 return html_colors(self.nick)
34 return "<ActivePlayer({0.sort_order}, {0.player_id})>".format(self)
37 class ActiveServer(object):
39 A record in the "Most Active Servers" list.
42 def __init__(self, sort_order=None, server_id=None, server_name=None, play_time=None):
43 self.sort_order = sort_order
44 self.server_id = server_id
45 self.server_name = server_name
46 self.play_time = play_time
48 def play_time_str(self):
52 if not self.play_time:
55 total_seconds = self.play_time.total_seconds()
56 if total_seconds >= day:
57 return "{}d".format(round(float(total_seconds) / day, 1))
58 elif day > total_seconds >= hour:
59 return "{}h".format(round(float(total_seconds) / hour, 1))
61 return "{}m".format(round(float(total_seconds) / 60, 1))
64 return "<ActiveServer({0.sort_order}, {0.server_id})>".format(self)
67 class ActiveMap(object):
69 A record in the "Most Active Maps" list.
72 def __init__(self, sort_order=None, map_id=None, map_name=None, games=None):
73 self.sort_order = sort_order
75 self.map_name = map_name
79 return "<ActiveMap({0.sort_order}, {0.map_id})>".format(self)