mirror of
https://github.com/searxng/searxng.git
synced 2025-11-20 05:23:09 -05:00
[fix] engine qwant - return forbidden instead of showing parse error (#5377)
This commit is contained in:
parent
50a4c653dc
commit
4ca75a0450
@ -53,6 +53,7 @@ from searx.exceptions import (
|
|||||||
SearxEngineAPIException,
|
SearxEngineAPIException,
|
||||||
SearxEngineTooManyRequestsException,
|
SearxEngineTooManyRequestsException,
|
||||||
SearxEngineCaptchaException,
|
SearxEngineCaptchaException,
|
||||||
|
SearxEngineAccessDeniedException,
|
||||||
)
|
)
|
||||||
from searx.network import raise_for_httperror
|
from searx.network import raise_for_httperror
|
||||||
from searx.enginelib.traits import EngineTraits
|
from searx.enginelib.traits import EngineTraits
|
||||||
@ -184,8 +185,12 @@ def parse_web_api(resp):
|
|||||||
|
|
||||||
results = []
|
results = []
|
||||||
|
|
||||||
# load JSON result
|
# Try to load JSON result
|
||||||
|
try:
|
||||||
search_results = loads(resp.text)
|
search_results = loads(resp.text)
|
||||||
|
except ValueError:
|
||||||
|
search_results = {}
|
||||||
|
|
||||||
data = search_results.get('data', {})
|
data = search_results.get('data', {})
|
||||||
|
|
||||||
# check for an API error
|
# check for an API error
|
||||||
@ -195,6 +200,8 @@ def parse_web_api(resp):
|
|||||||
raise SearxEngineTooManyRequestsException()
|
raise SearxEngineTooManyRequestsException()
|
||||||
if search_results.get("data", {}).get("error_data", {}).get("captchaUrl") is not None:
|
if search_results.get("data", {}).get("error_data", {}).get("captchaUrl") is not None:
|
||||||
raise SearxEngineCaptchaException()
|
raise SearxEngineCaptchaException()
|
||||||
|
if resp.status_code == 403:
|
||||||
|
raise SearxEngineAccessDeniedException()
|
||||||
msg = ",".join(data.get('message', ['unknown']))
|
msg = ",".join(data.get('message', ['unknown']))
|
||||||
raise SearxEngineAPIException(f"{msg} ({error_code})")
|
raise SearxEngineAPIException(f"{msg} ({error_code})")
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user