X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=xonstat%2Fviews%2Fserver.py;h=a3e4bf47fdcfee13cd8b55b44480f78b20cc6d28;hb=cf9226da5cd4e8e8f1841a6f6f5e0ae7c18038b5;hp=89d512be6d5212b9d8b4b42a49c05e3a3028cdbd;hpb=caa86432988acf03266fb7cd81eb49b378f0b8b0;p=xonotic%2Fxonstat.git diff --git a/xonstat/views/server.py b/xonstat/views/server.py index 89d512b..a3e4bf4 100644 --- a/xonstat/views/server.py +++ b/xonstat/views/server.py @@ -27,12 +27,14 @@ class ServerIndex(object): """Common parameter parsing.""" self.request = request self.page = request.params.get("page", 1) - self.servers = self.raw() + self.servers = self.server_index() - def raw(self): + def server_index(self): """Returns the raw data shared by all renderers.""" try: - server_q = DBSession.query(Server).order_by(Server.server_id.desc()) + server_q = DBSession.query(Server)\ + .filter(Server.active_ind)\ + .order_by(Server.server_id.desc()) servers = Page(server_q, self.page, items_per_page=25, url=page_url) except Exception as e: @@ -62,8 +64,8 @@ class ServerInfoBase(object): self.request = request self.server_id = request.matchdict.get("id", None) - raw_lifetime = request.registry.settings.get('xonstat.leaderboard_lifetime', - LEADERBOARD_LIFETIME) + raw_lifetime = LEADERBOARD_LIFETIME + self.lifetime = int(raw_lifetime) self.limit = request.params.get("limit", limit) @@ -78,9 +80,9 @@ class ServerTopMaps(ServerInfoBase): """Common parameter parsing.""" super(ServerTopMaps, self).__init__(request, limit, last) - self.top_maps = self.raw() + self.top_maps = self.top_maps() - def raw(self): + def top_maps(self): """Returns the raw data shared by all renderers.""" try: top_maps_q = DBSession.query( @@ -142,9 +144,9 @@ class ServerTopScorers(ServerInfoBase): def __init__(self, request, limit=INDEX_COUNT, last=None): """Common parameter parsing.""" super(ServerTopScorers, self).__init__(request, limit, last) - self.top_scorers = self.raw() + self.top_scorers = self.top_scorers() - def raw(self): + def top_scorers(self): """Top scorers on this server by total score.""" try: top_scorers_q = DBSession.query( @@ -216,9 +218,9 @@ class ServerTopPlayers(ServerInfoBase): def __init__(self, request, limit=INDEX_COUNT, last=None): """Common parameter parsing.""" super(ServerTopPlayers, self).__init__(request, limit, last) - self.top_players = self.raw() + self.top_players = self.top_players() - def raw(self): + def top_players(self): """Top players on this server by total playing time.""" try: top_players_q = DBSession.query( @@ -292,7 +294,11 @@ class ServerInfo(ServerInfoBase): # this view uses data from other views, so we'll save the data at that level try: - self.server = DBSession.query(Server).filter_by(server_id=self.server_id).one() + self.server = DBSession.query(Server)\ + .filter(Server.active_ind)\ + .filter(Server.server_id == self.server_id)\ + .one() + self.top_maps_v = ServerTopMaps(self.request, limit=LEADERBOARD_COUNT) self.top_scorers_v = ServerTopScorers(self.request, limit=LEADERBOARD_COUNT) self.top_players_v = ServerTopPlayers(self.request, limit=LEADERBOARD_COUNT)