diff --git a/searx/engines/qwant.py b/searx/engines/qwant.py index 0ffc6d1a9..30e7e237e 100644 --- a/searx/engines/qwant.py +++ b/searx/engines/qwant.py @@ -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