diff options
| author | Adam Tauber <asciimoo@gmail.com> | 2014-03-08 14:00:20 +0100 |
|---|---|---|
| committer | Adam Tauber <asciimoo@gmail.com> | 2014-03-08 14:00:20 +0100 |
| commit | 13a27b909e3cdc484be436961d7873bfba0fb395 (patch) | |
| tree | 1e013f84ed00c4fe49635d5feb7e6d95f1a1987a | |
| parent | 2be94c2078ccbeb1e69bbd54eec76e10cce00467 (diff) | |
[fix] #47
| -rw-r--r-- | searx/webapp.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/searx/webapp.py b/searx/webapp.py index ab6d522c1..4201b19e5 100644 --- a/searx/webapp.py +++ b/searx/webapp.py @@ -26,6 +26,7 @@ import json import cStringIO import os +from itertools import chain from flask import ( Flask, request, render_template, url_for, Response, make_response, redirect, send_from_directory @@ -86,10 +87,17 @@ def get_base_url(): def render(template_name, **kwargs): - global categories - kwargs['categories'] = ['general'] - kwargs['categories'].extend(x for x in - sorted(categories.keys()) if x != 'general') + blocked_engines = request.cookies.get('blocked_engines', '').split(',') + nonblocked_categories = (engines[e].categories + for e in engines + if e not in blocked_engines) + nonblocked_categories = set(chain.from_iterable(nonblocked_categories)) + if not 'categories' in kwargs: + kwargs['categories'] = ['general'] + kwargs['categories'].extend(x for x in + sorted(categories.keys()) + if x != 'general'\ + and x in nonblocked_categories) if not 'selected_categories' in kwargs: kwargs['selected_categories'] = [] cookie_categories = request.cookies.get('categories', '').split(',') |