[fix] tracker url remover + external bangs: use standard network config

Using plain `httpx` directly doesn't use SearXNG's additional network config, including proxies, http2 config, ...

Related issues:
- https://github.com/searxng/searxng/issues/5027
This commit is contained in:
Bnyro 2025-07-21 21:34:21 +02:00
parent b95a3e905d
commit 5cbf422621
2 changed files with 5 additions and 6 deletions

View File

@ -10,9 +10,8 @@ import re
from collections.abc import Iterator from collections.abc import Iterator
from urllib.parse import urlparse, urlunparse, parse_qsl, urlencode from urllib.parse import urlparse, urlunparse, parse_qsl, urlencode
import httpx
from searx.data.core import get_cache, log from searx.data.core import get_cache, log
from searx.network import get as http_get
RuleType = tuple[str, list[str], list[str]] RuleType = tuple[str, list[str], list[str]]
@ -44,7 +43,7 @@ class TrackerPatternsDB:
self.cache.properties.set("tracker_patterns loaded", "OK") self.cache.properties.set("tracker_patterns loaded", "OK")
self.load() self.load()
# F I X M E: # F I X M E:
# do we need a maintenance .. rember: database is stored # do we need a maintenance .. remember: database is stored
# in /tmp and will be rebuild during the reboot anyway # in /tmp and will be rebuild during the reboot anyway
def load(self): def load(self):
@ -71,7 +70,7 @@ class TrackerPatternsDB:
def iter_clear_list(self) -> Iterator[RuleType]: def iter_clear_list(self) -> Iterator[RuleType]:
resp = None resp = None
for url in self.CLEAR_LIST_URL: for url in self.CLEAR_LIST_URL:
resp = httpx.get(url, timeout=3) resp = http_get(url, timeout=3)
if resp.status_code == 200: if resp.status_code == 200:
break break
log.warning(f"TRACKER_PATTERNS: ClearURL ignore HTTP {resp.status_code} {url}") log.warning(f"TRACKER_PATTERNS: ClearURL ignore HTTP {resp.status_code} {url}")

View File

@ -8,10 +8,10 @@ from :py:obj:`BANGS_URL`.
""" """
import json import json
import httpx
from searx.external_bang import LEAF_KEY from searx.external_bang import LEAF_KEY
from searx.data import data_dir from searx.data import data_dir
from searx.network import get as http_get
DATA_FILE = data_dir / 'external_bangs.json' DATA_FILE = data_dir / 'external_bangs.json'
@ -24,7 +24,7 @@ HTTP_COLON = 'http:'
def main(): def main():
print(f'fetch bangs from {BANGS_URL}') print(f'fetch bangs from {BANGS_URL}')
response = httpx.get(BANGS_URL) response = http_get(BANGS_URL)
response.raise_for_status() response.raise_for_status()
ddg_bangs = json.loads(response.content.decode()) ddg_bangs = json.loads(response.content.decode())
trie = parse_ddg_bangs(ddg_bangs) trie = parse_ddg_bangs(ddg_bangs)