From e745764fc55043f6107f68986f82845310537fee Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Fri, 21 Dec 2012 22:07:45 +0100 Subject: Added feedback and limits to searches. --- app.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'app.py') diff --git a/app.py b/app.py index 8aecdf8..eb3e7da 100755 --- a/app.py +++ b/app.py @@ -59,6 +59,10 @@ class JSONApplication(object): def search(self, environ, start_response, path): args = cgi.FieldStorage(environ = environ) query = args.getvalue('q') + if not (query or '').strip(): + start_response('200 OK', []) + return json.dumps({'total': 0, 'results': []}) + r = self.re_search.findall(query) d = {} l = [] @@ -69,16 +73,21 @@ class JSONApplication(object): else: l.append(v) + total_results = 0 results = [] try: session = db.Session() r = db.Track.search(session, *l, **d) - results = [self.format_track(x) for x in r] + total_results = r.count() + results = [self.format_track(x) for x in r.limit(100)] finally: session.close() start_response('200 OK', []) - return json.dumps(results) + return json.dumps({ + 'total': total_results, + 'results': results, + }) def albums(self, environ, start_response, path): page = int(path[1] if len(path) > 1 else 0) -- cgit v1.2.3