@@ -83,7 +83,7 @@ for engine_config_name in engines_config.sections():
8383def default_request_params():
8484 return {'method': 'GET', 'headers': {}, 'data': {}, 'url': '', 'cookies': {}}
8585
86−def make_callback(engine_name, results, callback, params):
86+def make_callback(engine_name, results, suggestions, callback, params):
8787 # creating a callback wrapper for the search engine results
8888 def process_callback(response, **kwargs):
8989 cb_res = []
@@ -98,6 +98,10 @@ def make_callback(engine_name, results, callback, params):
9898 return
9999 for result in search_results:
100100 result['engine'] = engine_name
101+ if 'suggestion' in result:
102+ # TODO type checks
103+ suggestions.add(result['suggestion'])
104+ continue
101105 cb_res.append(result)
102106 results[engine_name] = cb_res
103107 return process_callback
@@ -167,6 +171,7 @@ def search(query, request, selected_engines):
167171 global engines, categories, number_of_searches
168172 requests = []
169173 results = {}
174+ suggestions = set()
170175 number_of_searches += 1
171176 user_agent = request.headers.get('User-Agent', '')
172177
@@ -182,7 +187,7 @@ def search(query, request, selected_engines):
182187 request_params['started'] = datetime.now()
183188 request_params = engine.request(query, request_params)
184189
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)
186191
187192 request_args = dict(headers = request_params['headers']
188193 ,hooks = dict(response=callback)
@@ -214,7 +219,7 @@ def search(query, request, selected_engines):
214219 for res_engine in result['engines']:
215220 engines[result['engine']].stats['score_count'] += result['score']
216221
217− return results
222+ return results, suggestions
218223
219224def get_engines_stats():
220225 pageloads = []