|
@@ -242,17 +242,6 @@ def about():
|
242
|
242
|
return render('about.html')
|
243
|
243
|
|
244
|
244
|
|
245
|
|
-@app.route('/engines', methods=['GET'])
|
246
|
|
-def list_engines():
|
247
|
|
- """Render engines page.
|
248
|
|
-
|
249
|
|
- List of all supported engines.
|
250
|
|
- """
|
251
|
|
- return render('engines.html',
|
252
|
|
- categs=categories.items(),
|
253
|
|
- shortcuts={y: x for x, y in engine_shortcuts.items()})
|
254
|
|
-
|
255
|
|
-
|
256
|
245
|
@app.route('/preferences', methods=['GET', 'POST'])
|
257
|
246
|
def preferences():
|
258
|
247
|
"""Render preferences page.
|
|
@@ -264,7 +253,11 @@ def preferences():
|
264
|
253
|
and request.cookies['language'] in (x[0] for x in language_codes):
|
265
|
254
|
lang = request.cookies['language']
|
266
|
255
|
|
267
|
|
- if request.method == 'POST':
|
|
256
|
+ blocked_engines = []
|
|
257
|
+
|
|
258
|
+ if request.method == 'GET':
|
|
259
|
+ blocked_engines = request.cookies.get('blocked_engines', '').split(',')
|
|
260
|
+ else:
|
268
|
261
|
selected_categories = []
|
269
|
262
|
locale = None
|
270
|
263
|
for pd_name, pd in request.form.items():
|
|
@@ -278,10 +271,24 @@ def preferences():
|
278
|
271
|
elif pd_name == 'language' and (pd == 'all' or
|
279
|
272
|
pd in (x[0] for
|
280
|
273
|
x in language_codes)):
|
|
274
|
+ locale = pd
|
281
|
275
|
lang = pd
|
|
276
|
+ elif pd_name.startswith('engine_'):
|
|
277
|
+ engine_name = pd_name.replace('engine_', '', 1)
|
|
278
|
+ if engine_name in engines:
|
|
279
|
+ blocked_engines.append(engine_name)
|
282
|
280
|
|
283
|
281
|
resp = make_response(redirect('/'))
|
284
|
282
|
|
|
283
|
+ user_blocked_engines = request.cookies.get('blocked_engines', '').split(',') # noqa
|
|
284
|
+
|
|
285
|
+ if sorted(blocked_engines) != sorted(user_blocked_engines):
|
|
286
|
+ # cookie max age: 4 weeks
|
|
287
|
+ resp.set_cookie(
|
|
288
|
+ 'blocked_engines', ','.join(blocked_engines),
|
|
289
|
+ max_age=60 * 60 * 24 * 7 * 4
|
|
290
|
+ )
|
|
291
|
+
|
285
|
292
|
if locale:
|
286
|
293
|
# cookie max age: 4 weeks
|
287
|
294
|
resp.set_cookie(
|
|
@@ -307,7 +314,10 @@ def preferences():
|
307
|
314
|
locales=settings['locales'],
|
308
|
315
|
current_locale=get_locale(),
|
309
|
316
|
current_language=lang or 'all',
|
310
|
|
- language_codes=language_codes)
|
|
317
|
+ language_codes=language_codes,
|
|
318
|
+ categs=categories.items(),
|
|
319
|
+ blocked_engines=blocked_engines,
|
|
320
|
+ shortcuts={y: x for x, y in engine_shortcuts.items()})
|
311
|
321
|
|
312
|
322
|
|
313
|
323
|
@app.route('/stats', methods=['GET'])
|