[enh] engine selection support

This commit is contained in:
asciimoo 2013-10-15 22:18:08 +02:00
parent e4b768b6cc
commit 9e1ded688f
2 changed files with 10 additions and 2 deletions

View File

@ -28,12 +28,14 @@ def make_callback(engine_name, results, callback):
results.append(result) results.append(result)
return process_callback return process_callback
def search(query, request): def search(query, request, selected_engines):
global engines global engines
requests = [] requests = []
results = [] results = []
user_agent = request.headers.get('User-Agent', '') user_agent = request.headers.get('User-Agent', '')
for ename, engine in engines.items(): for ename, engine in engines.items():
if ename not in selected_engines:
continue
headers = default_request_params() headers = default_request_params()
headers['User-Agent'] = user_agent headers['User-Agent'] = user_agent
request_params = engine.request(query, headers) request_params = engine.request(query, headers)

View File

@ -47,8 +47,14 @@ def index():
if not request.form.get('q'): if not request.form.get('q'):
flash('Wrong post data') flash('Wrong post data')
return render('index.html') return render('index.html')
selected_engines = []
for pd_name,pd in request.form.items():
print pd
if pd_name.startswith('engine_'):
selected_engines.append(pd_name[7:])
print selected_engines
query = request.form['q'] query = request.form['q']
results = search(query, request) results = search(query, request, selected_engines)
return render('results.html', results=results, q=query) return render('results.html', results=results, q=query)
return render('index.html') return render('index.html')