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

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

26
 import cStringIO
26
 import cStringIO
27
 import os
27
 import os
28
 
28
 
29
+from itertools import chain
29
 from flask import (
30
 from flask import (
30
     Flask, request, render_template, url_for, Response, make_response,
31
     Flask, request, render_template, url_for, Response, make_response,
31
     redirect, send_from_directory
32
     redirect, send_from_directory
86
 
87
 
87
 
88
 
88
 def render(template_name, **kwargs):
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
     if not 'selected_categories' in kwargs:
101
     if not 'selected_categories' in kwargs:
94
         kwargs['selected_categories'] = []
102
         kwargs['selected_categories'] = []
95
         cookie_categories = request.cookies.get('categories', '').split(',')
103
         cookie_categories = request.cookies.get('categories', '').split(',')