@@ -129,7 +129,7 @@ def parse_query(query):
129129
130130@app.route('/', methods=['GET', 'POST'])
131131def index():
132− global categories
132+ paging = False
133133
134134 if request.method == 'POST':
135135 request_data = request.form
@@ -138,6 +138,12 @@ def index():
138138 if not request_data.get('q'):
139139 return render('index.html')
140140
141+ pageno_param = request_data.get('pageno', '1')
142+ if not pageno_param.isdigit() or int(pageno_param) < 1:
143+ return render('index.html')
144+
145+ pageno = int(pageno_param)
146+
141147 selected_categories = []
142148
143149 query, selected_engines = parse_query(request_data['q'].encode('utf-8'))
@@ -166,10 +172,12 @@ def index():
166172 'name': x.name}
167173 for x in categories[categ])
168174
169− results, suggestions = search(query, request, selected_engines)
175+ results, suggestions = search(query, request, selected_engines, pageno)
170176
171177 featured_results = []
172178 for result in results:
179+ if not paging and engines[result['engine']].paging:
180+ paging = True
173181 if request_data.get('format', 'html') == 'html':
174182 if 'content' in result:
175183 result['content'] = highlight_content(result['content'], query)
@@ -219,7 +227,8 @@ def index():
219227 results=results,
220228 q=request_data['q'],
221229 selected_categories=selected_categories,
222− number_of_results=len(results) + len(featured_results),
230+ paging=paging,
231+ pageno=pageno,
223232 featured_results=featured_results,
224233 suggestions=suggestions
225234 )