@@ -20,6 +20,7 @@ import sys
20import threading
20import threading
21from time import time
21from time import time
22from uuid import uuid4
22from uuid import uuid4
23+from flask_babel import gettext
23import requests.exceptions
24import requests.exceptions
24import searx.poolrequests as requests_lib
25import searx.poolrequests as requests_lib
25from searx.engines import (
26from searx.engines import (
@@ -133,18 +134,21 @@ def search_one_request_safe(engine_name, query, request_params, result_container
133 requests_exception = False
134 requests_exception = False
135 if (issubclass(e.__class__, requests.exceptions.Timeout)):
136 if (issubclass(e.__class__, requests.exceptions.Timeout)):
137+ result_container.add_unresponsive_engine((engine_name, gettext('timeout')))
136 # requests timeout (connect or read)
138 # requests timeout (connect or read)
137 logger.error("engine {0} : HTTP requests timeout"
139 logger.error("engine {0} : HTTP requests timeout"
138 "(search duration : {1} s, timeout: {2} s) : {3}"
140 "(search duration : {1} s, timeout: {2} s) : {3}"
139 .format(engine_name, search_duration, timeout_limit, e.__class__.__name__))
141 .format(engine_name, search_duration, timeout_limit, e.__class__.__name__))
140 requests_exception = True
142 requests_exception = True
141 elif (issubclass(e.__class__, requests.exceptions.RequestException)):
143 elif (issubclass(e.__class__, requests.exceptions.RequestException)):
144+ result_container.add_unresponsive_engine((engine_name, gettext('request exception')))
142 # other requests exception
145 # other requests exception
143 logger.exception("engine {0} : requests exception"
146 logger.exception("engine {0} : requests exception"
144 "(search duration : {1} s, timeout: {2} s) : {3}"
147 "(search duration : {1} s, timeout: {2} s) : {3}"
145 .format(engine_name, search_duration, timeout_limit, e))
148 .format(engine_name, search_duration, timeout_limit, e))
146 requests_exception = True
149 requests_exception = True
151+ result_container.add_unresponsive_engine((engine_name, gettext('unexpected crash')))
148 # others errors
152 # others errors
149 logger.exception('engine {0} : exception : {1}'.format(engine_name, e))
153 logger.exception('engine {0} : exception : {1}'.format(engine_name, e))