""" Models related to the main index page. """ import datetime from xonstat.util import html_colors class SummaryStat(object): """ The high level summary line that is shown on the main page. """ def __repr__(self): return ("".format(self)) class ActivePlayer(object): """ A record in the "Most Active Players" list. """ def __init__(self, sort_order=None, player_id=None, nick=None, alivetime=None): self.sort_order = sort_order self.player_id = player_id self.nick = nick self.alivetime = alivetime def nick_html_colors(self): return html_colors(self.nick) def __repr__(self): return "".format(self) class ActiveServer(object): """ A record in the "Most Active Servers" list. """ def __init__(self, sort_order=None, server_id=None, server_name=None, play_time=None): self.sort_order = sort_order self.server_id = server_id self.server_name = server_name self.play_time = play_time def play_time_str(self): hour = 3600 day = hour * 24 if not self.play_time: return "0m" total_seconds = self.play_time.total_seconds() if total_seconds >= day: return "{}d".format(round(float(total_seconds) / day, 1)) elif day > total_seconds >= hour: return "{}h".format(round(float(total_seconds) / hour, 1)) else: return "{}m".format(round(float(total_seconds) / 60, 1)) def __repr__(self): return "".format(self) class ActiveMap(object): """ A record in the "Most Active Maps" list. """ def __init__(self, sort_order=None, map_id=None, map_name=None, games=None): self.sort_order = sort_order self.map_id = map_id self.map_name = map_name self.games = games def __repr__(self): return "".format(self)