commit: 13a27b909e3cdc484be436961d7873bfba0fb395
parent: 2be94c2078ccbeb1e69bbd54eec76e10cce00467
Author: Adam Tauber <asciimoo@gmail.com>
Date: Sat, 8 Mar 2014 14:00:20 +0100
[fix] #47
Diffstat:
1 file changed, 12 insertions(+), 4 deletions(-)
diff --git 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(',')