handlers.py
861 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from piston.utils import rc
from piston.handler import BaseHandler
from colab.deprecated import solrutils
class SearchHandler(BaseHandler):
allowed_methods = ('GET', )
def read(self, request):
query = request.GET.get('q')
page = request.GET.get('p', 1)
results_per_page = request.GET.get('n', 50)
order = request.GET.get('o')
if not query:
return 'Query cannot be empty.'
else:
query = query.encode('utf-8')
try:
n = int(results_per_page)
except ValueError:
n = 10
if 1 > n > 500:
n = 1
try:
page = int(page)
except ValueError:
page = 1
if page < 1:
page = 1
return solrutils.select(query, results_per_page, page, order)