Adam Tauber 11 년 전
부모
커밋
13a27b909e
1개의 변경된 파일12개의 추가작업 그리고 4개의 파일을 삭제
  1. 12
    4
      searx/webapp.py

+ 12
- 4
searx/webapp.py 파일 보기

@@ -26,6 +26,7 @@ import json
26 26
 import cStringIO
27 27
 import os
28 28
 
29
+from itertools import chain
29 30
 from flask import (
30 31
     Flask, request, render_template, url_for, Response, make_response,
31 32
     redirect, send_from_directory
@@ -86,10 +87,17 @@ def get_base_url():
86 87
 
87 88
 
88 89
 def render(template_name, **kwargs):
89
-    global categories
90
-    kwargs['categories'] = ['general']
91
-    kwargs['categories'].extend(x for x in
92
-                                sorted(categories.keys()) if x != 'general')
90
+    blocked_engines = request.cookies.get('blocked_engines', '').split(',')
91
+    nonblocked_categories = (engines[e].categories
92
+                             for e in engines
93
+                             if e not in blocked_engines)
94
+    nonblocked_categories = set(chain.from_iterable(nonblocked_categories))
95
+    if not 'categories' in kwargs:
96
+        kwargs['categories'] = ['general']
97
+        kwargs['categories'].extend(x for x in
98
+                                    sorted(categories.keys())
99
+                                    if x != 'general'\
100
+                                    and x in nonblocked_categories)
93 101
     if not 'selected_categories' in kwargs:
94 102
         kwargs['selected_categories'] = []
95 103
         cookie_categories = request.cookies.get('categories', '').split(',')