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