summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--searx/search.py28
1 files changed, 16 insertions, 12 deletions
diff --git a/searx/search.py b/searx/search.py
index 49d9639dd..d1d03805f 100644
--- a/searx/search.py
+++ b/searx/search.py
@@ -34,14 +34,27 @@ from searx.query import Query
number_of_searches = 0
+def search_request_wrapper(fn, url, engine_name, **kwargs):
+ try:
+ return fn(url, **kwargs)
+ except Exception, e:
+ # increase errors stats
+ engines[engine_name].stats['errors'] += 1
+
+ # print engine name and specific error message
+ print('[E] Error with engine "{0}":\n\t{1}'.format(
+ engine_name, str(e)))
+ return
+
+
def threaded_requests(requests):
timeout_limit = max(r[2]['timeout'] for r in requests)
search_start = time()
for fn, url, request_args, engine_name in requests:
request_args['timeout'] = timeout_limit
th = threading.Thread(
- target=fn,
- args=(url,),
+ target=search_request_wrapper,
+ args=(fn, url, engine_name),
kwargs=request_args,
name='search_request',
)
@@ -79,16 +92,7 @@ def make_callback(engine_name, results_queue, callback, params):
return
# callback
- try:
- search_results = callback(response)
- except Exception, e:
- # increase errors stats
- engines[engine_name].stats['errors'] += 1
-
- # print engine name and specific error message
- print '[E] Error with engine "{0}":\n\t{1}'.format(
- engine_name, str(e))
- return
+ search_results = callback(response)
# add results
for result in search_results: