|
@@ -83,6 +83,7 @@ def default_request_params():
|
83
|
83
|
return {'method': 'GET', 'headers': {}, 'data': {}, 'url': '', 'cookies': {}}
|
84
|
84
|
|
85
|
85
|
def make_callback(engine_name, results, callback, params):
|
|
86
|
+
|
86
|
87
|
def process_callback(response, **kwargs):
|
87
|
88
|
cb_res = []
|
88
|
89
|
response.search_params = params
|
|
@@ -100,6 +101,16 @@ def make_callback(engine_name, results, callback, params):
|
100
|
101
|
results[engine_name] = cb_res
|
101
|
102
|
return process_callback
|
102
|
103
|
|
|
104
|
+def highlight_content(content, query):
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+ if content.find('<') != -1:
|
|
108
|
+ return content
|
|
109
|
+ for chunk in query.split():
|
|
110
|
+ content = content.replace(chunk, '<b>{0}</b>'.format(chunk))
|
|
111
|
+
|
|
112
|
+ return content
|
|
113
|
+
|
103
|
114
|
def search(query, request, selected_engines):
|
104
|
115
|
global engines, categories, number_of_searches
|
105
|
116
|
requests = []
|
|
@@ -176,6 +187,8 @@ def search(query, request, selected_engines):
|
176
|
187
|
results.append(res)
|
177
|
188
|
|
178
|
189
|
for result in results:
|
|
190
|
+ if 'content' in result:
|
|
191
|
+ result['content'] = highlight_content(result['content'], query)
|
179
|
192
|
for res_engine in result['engines']:
|
180
|
193
|
engines[result['engine']].stats['score_count'] += result['score']
|
181
|
194
|
|