on master help sign in
[enh] engine selection support
9e1ded6asciimoo
searx/engines/__init__.py+3−1
@@ -28,12 +28,14 @@ def make_callback(engine_name, results, callback):
28 results.append(result)
28 results.append(result)
29 return process_callback
29 return process_callback
30
30
31−def search(query, request):
31+def search(query, request, selected_engines):
32 global engines
32 global engines
33 requests = []
33 requests = []
34 results = []
34 results = []
35 user_agent = request.headers.get('User-Agent', '')
35 user_agent = request.headers.get('User-Agent', '')
36 for ename, engine in engines.items():
36 for ename, engine in engines.items():
37+ if ename not in selected_engines:
38+ continue
37 headers = default_request_params()
39 headers = default_request_params()
38 headers['User-Agent'] = user_agent
40 headers['User-Agent'] = user_agent
39 request_params = engine.request(query, headers)
41 request_params = engine.request(query, headers)
searx/webapp.py+7−1
@@ -47,8 +47,14 @@ def index():
47 if not request.form.get('q'):
47 if not request.form.get('q'):
48 flash('Wrong post data')
48 flash('Wrong post data')
49 return render('index.html')
49 return render('index.html')
50+ selected_engines = []
51+ for pd_name,pd in request.form.items():
52+ print pd
53+ if pd_name.startswith('engine_'):
54+ selected_engines.append(pd_name[7:])
55+ print selected_engines
50 query = request.form['q']
56 query = request.form['q']
51− results = search(query, request)
57+ results = search(query, request, selected_engines)
52 return render('results.html', results=results, q=query)
58 return render('results.html', results=results, q=query)
53 return render('index.html')
59 return render('index.html')
54
60