summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Tauber <asciimoo@gmail.com>2014-03-08 14:00:20 +0100
committerAdam Tauber <asciimoo@gmail.com>2014-03-08 14:00:20 +0100
commit13a27b909e3cdc484be436961d7873bfba0fb395 (patch)
tree1e013f84ed00c4fe49635d5feb7e6d95f1a1987a
parent2be94c2078ccbeb1e69bbd54eec76e10cce00467 (diff)
[fix] #47
-rw-r--r--searx/webapp.py16
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(',')