[enh] paging support

This commit is contained in:
asciimoo 2014-01-29 20:52:04 +01:00
parent 93b5ecdc75
commit 8bb94e3dc4
4 changed files with 41 additions and 10 deletions

View file

@ -129,7 +129,7 @@ def parse_query(query):
@app.route('/', methods=['GET', 'POST'])
def index():
global categories
paging = False
if request.method == 'POST':
request_data = request.form
@ -138,6 +138,12 @@ def index():
if not request_data.get('q'):
return render('index.html')
pageno_param = request_data.get('pageno', '1')
if not pageno_param.isdigit() or int(pageno_param) < 1:
return render('index.html')
pageno = int(pageno_param)
selected_categories = []
query, selected_engines = parse_query(request_data['q'].encode('utf-8'))
@ -166,10 +172,12 @@ def index():
'name': x.name}
for x in categories[categ])
results, suggestions = search(query, request, selected_engines)
results, suggestions = search(query, request, selected_engines, pageno)
featured_results = []
for result in results:
if not paging and engines[result['engine']].paging:
paging = True
if request_data.get('format', 'html') == 'html':
if 'content' in result:
result['content'] = highlight_content(result['content'], query)
@ -219,7 +227,8 @@ def index():
results=results,
q=request_data['q'],
selected_categories=selected_categories,
number_of_results=len(results) + len(featured_results),
paging=paging,
pageno=pageno,
featured_results=featured_results,
suggestions=suggestions
)