]> de.git.xonotic.org Git - xonotic/xonstat.git/blobdiff - xonstat/views/search.py
Add the fuzzy and epoch dates to the maps JSON response.
[xonotic/xonstat.git] / xonstat / views / search.py
old mode 100755 (executable)
new mode 100644 (file)
index 3e16e77..1cceca7
@@ -1,16 +1,9 @@
-import datetime
 import logging
-import pyramid.httpexceptions
-import re
-import time
-from pyramid.response import Response
-from sqlalchemy import desc
-from sqlalchemy.orm.exc import MultipleResultsFound, NoResultFound
+
 from sqlalchemy import func
-from xonstat.models import *
-from xonstat.util import strip_colors, qfont_decode
-from xonstat.util import page_url, html_colors
-from webhelpers.paginate import Page, PageURL
+from webhelpers.paginate import Page
+from xonstat.models import DBSession, Server, Map, Game, PlayerGameStat, Player
+from xonstat.util import page_url
 
 log = logging.getLogger(__name__)
 
@@ -33,14 +26,13 @@ def search_q(nick=None, server_name=None, map_name=None, create_dt=None,
                     order_by(Player.player_id)
 
     # server-only searches
-    elif server_name and not nick and not map_name and not create_dt \
-        and len(gametypes) < 1:
+    elif server_name and not nick and not map_name and not create_dt and len(gametypes) < 1:
         result_type = "server"
         q = session.query(Server)
         if server_name:
-            q = q.filter(func.upper(Server.name).\
-                    like('%'+server_name.upper()+'%')).\
-                    order_by(Server.server_id)
+            q = q.filter(func.upper(Server.name).like('%'+server_name.upper()+'%'))\
+                .filter(Server.active_ind)\
+                .order_by(Server.server_id)
 
     # map-only searches
     elif map_name and not nick and not server_name and not create_dt \
@@ -57,6 +49,7 @@ def search_q(nick=None, server_name=None, map_name=None, create_dt=None,
         result_type = "game"
         q = session.query(Game, Server, Map).\
                 filter(Game.server_id == Server.server_id).\
+                filter(Server.active_ind).\
                 filter(Game.map_id == Map.map_id).\
                 order_by(Game.game_id.desc())
         if len(gametypes) > 0:
@@ -74,7 +67,7 @@ def search_q(nick=None, server_name=None, map_name=None, create_dt=None,
 
     return (result_type, q)
 
-def search(request):
+def _search_data(request):
     fs = None
     nick = None
     server_name = None
@@ -85,8 +78,9 @@ def search(request):
     query = None
     _query = {}
 
-    if 'page' in request.matchdict:
-        current_page = request.matchdict['page']
+
+    if request.params.has_key('page'):
+        current_page = request.params['page']
     else:
         current_page = 1
 
@@ -134,7 +128,7 @@ def search(request):
 
         try:
             if q != None:
-                results = Page(q, current_page, url=page_url)
+                results = Page(q, current_page, items_per_page=10, url=page_url)
         except Exception as e:
             raise e
             result_type = None
@@ -144,3 +138,11 @@ def search(request):
             'results':results,
             'query':query,
             }
+
+
+def search(request):
+    return _search_data(request)
+
+
+def search_json(request):
+    return [{'status':'not implemented'}]