|
|
|
@ -50,7 +50,7 @@ from flask_babel import gettext
|
|
|
|
|
import babel
|
|
|
|
|
import lxml
|
|
|
|
|
|
|
|
|
|
from searx.exceptions import SearxEngineAPIException
|
|
|
|
|
from searx.exceptions import SearxEngineAPIException, SearxEngineTooManyRequestsException
|
|
|
|
|
from searx.network import raise_for_httperror
|
|
|
|
|
from searx.enginelib.traits import EngineTraits
|
|
|
|
|
|
|
|
|
@ -188,15 +188,11 @@ def parse_web_api(resp):
|
|
|
|
|
|
|
|
|
|
# check for an API error
|
|
|
|
|
if search_results.get('status') != 'success':
|
|
|
|
|
msg = ",".join(
|
|
|
|
|
data.get(
|
|
|
|
|
'message',
|
|
|
|
|
[
|
|
|
|
|
'unknown',
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
raise SearxEngineAPIException('API error::' + msg)
|
|
|
|
|
error_code = data.get('error_code')
|
|
|
|
|
if error_code == 24:
|
|
|
|
|
raise SearxEngineTooManyRequestsException()
|
|
|
|
|
msg = ",".join(data.get('message', ['unknown']))
|
|
|
|
|
raise SearxEngineAPIException(f"{msg} ({error_code})")
|
|
|
|
|
|
|
|
|
|
# raise for other errors
|
|
|
|
|
raise_for_httperror(resp)
|
|
|
|
@ -220,7 +216,6 @@ def parse_web_api(resp):
|
|
|
|
|
return []
|
|
|
|
|
|
|
|
|
|
for row in mainline:
|
|
|
|
|
|
|
|
|
|
mainline_type = row.get('type', 'web')
|
|
|
|
|
if mainline_type != qwant_categ:
|
|
|
|
|
continue
|
|
|
|
|