on master help sign in
[mod] searching by selected engines
7027856asciimoo
searx/engines/__init__.py+1−8
@@ -97,20 +97,13 @@ def make_callback(engine_name, results, callback, params):
97 results[engine_name] = cb_res
97 results[engine_name] = cb_res
98 return process_callback
98 return process_callback
99
99
100−def search(query, request, selected_categories):
100+def search(query, request, selected_engines):
101 global engines, categories, number_of_searches
101 global engines, categories, number_of_searches
102 requests = []
102 requests = []
103 results = {}
103 results = {}
104− selected_engines = []
105 number_of_searches += 1
104 number_of_searches += 1
106 user_agent = request.headers.get('User-Agent', '')
105 user_agent = request.headers.get('User-Agent', '')
107
106
108− if not len(selected_categories):
109− selected_categories = ['general']
110−
111− for categ in selected_categories:
112− selected_engines.extend({'category': categ, 'name': x.name} for x in categories[categ])
113−
114 for selected_engine in selected_engines:
107 for selected_engine in selected_engines:
115 if selected_engine['name'] not in engines:
108 if selected_engine['name'] not in engines:
116 continue
109 continue
searx/webapp.py+11−2
@@ -65,6 +65,9 @@ def index():
65 request_data = request.args
65 request_data = request.args
66 if not request_data.get('q'):
66 if not request_data.get('q'):
67 return render('index.html')
67 return render('index.html')
68+
69+ query = request_data['q'].encode('utf-8')
70+
68 selected_categories = []
71 selected_categories = []
69 for pd_name,pd in request_data.items():
72 for pd_name,pd in request_data.items():
70 if pd_name.startswith('category_'):
73 if pd_name.startswith('category_'):
@@ -77,8 +80,14 @@ def index():
77 for ccateg in cookie_categories:
80 for ccateg in cookie_categories:
78 if ccateg in categories:
81 if ccateg in categories:
79 selected_categories.append(ccateg)
82 selected_categories.append(ccateg)
80− query = request_data['q'].encode('utf-8')
83+ if not len(selected_categories):
84+ selected_categories = ['general']
85+
86+ selected_engines = []
87+ for categ in selected_categories:
88+ selected_engines.extend({'category': categ, 'name': x.name} for x in categories[categ])
89+
81− results = search(query, request, selected_categories)
90+ results = search(query, request, selected_engines)
82 for result in results:
91 for result in results:
83 if len(result['url']) > 74:
92 if len(result['url']) > 74:
84 result['pretty_url'] = result['url'][:35] + '[..]' + result['url'][-35:]
93 result['pretty_url'] = result['url'][:35] + '[..]' + result['url'][-35:]