summaryrefslogtreecommitdiff
path: root/searx
diff options
context:
space:
mode:
authorBnyro <bnyro@tutanota.com>2026-07-08 20:53:08 +0200
committerBnyro <bnyro@tutanota.com>2026-07-08 21:01:11 +0200
commit3b573e0f89bd4d0154603c3cb7b8d795c03f7f93 (patch)
treedab3d9d22b624090ee9ca0bf994a19d1e7a890aa /searx
parentda6a230413a41e7b751414684d06c219d775d7b5 (diff)
[fix] heexy: use cookies for cacheft token
Heexy now passes the cacheft token via cookies and no longer via HTTP headers. Hence, the engine is broken without that change.
Diffstat (limited to 'searx')
-rw-r--r--searx/engines/heexy.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/searx/engines/heexy.py b/searx/engines/heexy.py
index f566a7953..1eadfb477 100644
--- a/searx/engines/heexy.py
+++ b/searx/engines/heexy.py
@@ -13,13 +13,12 @@ It seems to use Bing internally, as the image thumbnails are loaded from Bing.
from urllib.parse import urlencode
import typing as t
-from lxml import html
from searx.enginelib import EngineCache
from searx.network import get
from searx.exceptions import SearxEngineAPIException, SearxEngineAccessDeniedException
from searx.result_types import EngineResults
-from searx.utils import eval_xpath, extract_text, gen_useragent
+from searx.utils import gen_useragent
if t.TYPE_CHECKING:
from searx.extended_types import SXNG_Response
@@ -73,8 +72,7 @@ def _get_api_token(query: str) -> str:
if not resp.ok:
raise SearxEngineAPIException("failed to obtain request token: invalid response code")
- doc = html.fromstring(resp.text)
- token = extract_text(eval_xpath(doc, "//html/@data-cacheft"))
+ token = resp.cookies["cacheft"]
if not token:
raise SearxEngineAPIException("failed to obtain request token: no token found")
@@ -92,8 +90,9 @@ def request(query: str, params: "OnlineParams") -> None:
args["lang"] = params["searxng_locale"].split("-")[0]
params["url"] = f"{api_url}/search/{heexy_categ}?{urlencode(args)}"
- params["headers"]["X-Data-Cacheft"] = _get_api_token(query)
+
params["headers"]["Origin"] = api_url
+ params["cookies"]["cacheft"] = _get_api_token(query)
def response(resp: "SXNG_Response"):