|
@@ -129,7 +129,7 @@ def parse_query(query):
|
129
|
129
|
|
130
|
130
|
@app.route('/', methods=['GET', 'POST'])
|
131
|
131
|
def index():
|
132
|
|
- global categories
|
|
132
|
+ paging = False
|
133
|
133
|
|
134
|
134
|
if request.method == 'POST':
|
135
|
135
|
request_data = request.form
|
|
@@ -138,6 +138,12 @@ def index():
|
138
|
138
|
if not request_data.get('q'):
|
139
|
139
|
return render('index.html')
|
140
|
140
|
|
|
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
|
+
|
141
|
147
|
selected_categories = []
|
142
|
148
|
|
143
|
149
|
query, selected_engines = parse_query(request_data['q'].encode('utf-8'))
|
|
@@ -166,10 +172,12 @@ def index():
|
166
|
172
|
'name': x.name}
|
167
|
173
|
for x in categories[categ])
|
168
|
174
|
|
169
|
|
- results, suggestions = search(query, request, selected_engines)
|
|
175
|
+ results, suggestions = search(query, request, selected_engines, pageno)
|
170
|
176
|
|
171
|
177
|
featured_results = []
|
172
|
178
|
for result in results:
|
|
179
|
+ if not paging and engines[result['engine']].paging:
|
|
180
|
+ paging = True
|
173
|
181
|
if request_data.get('format', 'html') == 'html':
|
174
|
182
|
if 'content' in result:
|
175
|
183
|
result['content'] = highlight_content(result['content'], query)
|
|
@@ -219,7 +227,8 @@ def index():
|
219
|
227
|
results=results,
|
220
|
228
|
q=request_data['q'],
|
221
|
229
|
selected_categories=selected_categories,
|
222
|
|
- number_of_results=len(results) + len(featured_results),
|
|
230
|
+ paging=paging,
|
|
231
|
+ pageno=pageno,
|
223
|
232
|
featured_results=featured_results,
|
224
|
233
|
suggestions=suggestions
|
225
|
234
|
)
|