on master help sign in
[mod] searx.search: change function declaration: online then offline then utility functions.
commite8df5d3f7fd7cc76e26a66917832cf690f77c0e4 authorAlexandre Flament <alex@al-f.net> dateMon 14 Sep 2020, 10:25 (6 years ago) parent50e717c
1 file changed+42−42
searx/search.py+42−42
searx/search.py+42−42
@@ -97,48 +97,6 @@ def search_one_http_request(engine, query, request_params):
9797 return engine.response(response)
9898
9999
100−def search_one_offline_request(engine, query, request_params):
101− return engine.search(query, request_params)
102−
103−
104−def search_one_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit):
105− if engines[engine_name].offline:
106− return search_one_offline_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit) # noqa
107− return search_one_http_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit)
108−
109−
110−def search_one_offline_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit):
111− engine = engines[engine_name]
112−
113− try:
114− search_results = search_one_offline_request(engine, query, request_params)
115−
116− if search_results:
117− result_container.extend(engine_name, search_results)
118−
119− engine_time = time() - start_time
120− result_container.add_timing(engine_name, engine_time, engine_time)
121− with threading.RLock():
122− engine.stats['engine_time'] += engine_time
123− engine.stats['engine_time_count'] += 1
124−
125− except ValueError as e:
126− record_offline_engine_stats_on_error(engine, result_container, start_time)
127− logger.exception('engine {0} : invalid input : {1}'.format(engine_name, e))
128− except Exception as e:
129− record_offline_engine_stats_on_error(engine, result_container, start_time)
130− result_container.add_unresponsive_engine(engine_name, 'unexpected crash', str(e))
131− logger.exception('engine {0} : exception : {1}'.format(engine_name, e))
132−
133−
134−def record_offline_engine_stats_on_error(engine, result_container, start_time):
135− engine_time = time() - start_time
136− result_container.add_timing(engine.name, engine_time, engine_time)
137−
138− with threading.RLock():
139− engine.stats['errors'] += 1
140−
141−
142100def search_one_http_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit):
143101 # set timeout for all HTTP requests
144102 requests_lib.set_timeout_for_thread(timeout_limit, start_time=start_time)
@@ -214,6 +172,48 @@ def search_one_http_request_safe(engine_name, query, request_params, result_cont
214172 engine.suspend_end_time = 0
215173
216174
175+def record_offline_engine_stats_on_error(engine, result_container, start_time):
176+ engine_time = time() - start_time
177+ result_container.add_timing(engine.name, engine_time, engine_time)
178+
179+ with threading.RLock():
180+ engine.stats['errors'] += 1
181+
182+
183+def search_one_offline_request(engine, query, request_params):
184+ return engine.search(query, request_params)
185+
186+
187+def search_one_offline_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit):
188+ engine = engines[engine_name]
189+
190+ try:
191+ search_results = search_one_offline_request(engine, query, request_params)
192+
193+ if search_results:
194+ result_container.extend(engine_name, search_results)
195+
196+ engine_time = time() - start_time
197+ result_container.add_timing(engine_name, engine_time, engine_time)
198+ with threading.RLock():
199+ engine.stats['engine_time'] += engine_time
200+ engine.stats['engine_time_count'] += 1
201+
202+ except ValueError as e:
203+ record_offline_engine_stats_on_error(engine, result_container, start_time)
204+ logger.exception('engine {0} : invalid input : {1}'.format(engine_name, e))
205+ except Exception as e:
206+ record_offline_engine_stats_on_error(engine, result_container, start_time)
207+ result_container.add_unresponsive_engine(engine_name, 'unexpected crash', str(e))
208+ logger.exception('engine {0} : exception : {1}'.format(engine_name, e))
209+
210+
211+def search_one_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit):
212+ if engines[engine_name].offline:
213+ return search_one_offline_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit) # noqa
214+ return search_one_http_request_safe(engine_name, query, request_params, result_container, start_time, timeout_limit)
215+
216+
217217def search_multiple_requests(requests, result_container, start_time, timeout_limit):
218218 search_id = uuid4().__str__()
219219