@@ -83,7 +83,7 @@ for engine_config_name in engines_config.sections():
83def default_request_params():
83def default_request_params():
84 return {'method': 'GET', 'headers': {}, 'data': {}, 'url': '', 'cookies': {}}
84 return {'method': 'GET', 'headers': {}, 'data': {}, 'url': '', 'cookies': {}}
86−def make_callback(engine_name, results, callback, params):
86+def make_callback(engine_name, results, suggestions, callback, params):
87 # creating a callback wrapper for the search engine results
87 # creating a callback wrapper for the search engine results
88 def process_callback(response, **kwargs):
88 def process_callback(response, **kwargs):
89 cb_res = []
89 cb_res = []
@@ -98,6 +98,10 @@ def make_callback(engine_name, results, callback, params):
99 for result in search_results:
99 for result in search_results:
100 result['engine'] = engine_name
100 result['engine'] = engine_name
101+ if 'suggestion' in result:
103+ suggestions.add(result['suggestion'])
101 cb_res.append(result)
105 cb_res.append(result)
102 results[engine_name] = cb_res
106 results[engine_name] = cb_res
103 return process_callback
107 return process_callback
@@ -167,6 +171,7 @@ def search(query, request, selected_engines):
167 global engines, categories, number_of_searches
171 global engines, categories, number_of_searches
168 requests = []
172 requests = []
169 results = {}
173 results = {}
170 number_of_searches += 1
175 number_of_searches += 1
171 user_agent = request.headers.get('User-Agent', '')
176 user_agent = request.headers.get('User-Agent', '')
@@ -182,7 +187,7 @@ def search(query, request, selected_engines):
182 request_params['started'] = datetime.now()
187 request_params['started'] = datetime.now()
183 request_params = engine.request(query, request_params)
188 request_params = engine.request(query, request_params)
185− callback = make_callback(selected_engine['name'], results, engine.response, request_params)
190+ callback = make_callback(selected_engine['name'], results, suggestions, engine.response, request_params)
187 request_args = dict(headers = request_params['headers']
192 request_args = dict(headers = request_params['headers']
188 ,hooks = dict(response=callback)
193 ,hooks = dict(response=callback)
@@ -214,7 +219,7 @@ def search(query, request, selected_engines):
214 for res_engine in result['engines']:
219 for res_engine in result['engines']:
215 engines[result['engine']].stats['score_count'] += result['score']
220 engines[result['engine']].stats['score_count'] += result['score']
217− return results
222+ return results, suggestions
219def get_engines_stats():
224def get_engines_stats():
220 pageloads = []
225 pageloads = []