From cb013affefaf4b499a5606a2be0430e793fb24d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Maria=C5=84ski?= Date: Thu, 14 Jul 2022 12:09:00 +0200 Subject: [PATCH] Add onion url to ddg, update ping_url when using_tor_proxy --- searx/engines/__init__.py | 2 ++ searx/engines/duckduckgo.py | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py index 3fb0bcfb1..528982da5 100644 --- a/searx/engines/__init__.py +++ b/searx/engines/__init__.py @@ -239,6 +239,8 @@ def update_attributes_for_tor(engine: Engine) -> bool: if using_tor_proxy(engine) and hasattr(engine, 'onion_url'): engine.search_url = engine.onion_url + getattr(engine, 'search_path', '') engine.timeout += settings['outgoing'].get('extra_proxy_timeout', 0) + if hasattr(engine, 'ping_url'): + engine.ping_url = engine.onion_url + getattr(engine, 'ping_path', '') def is_missing_required_attributes(engine): diff --git a/searx/engines/duckduckgo.py b/searx/engines/duckduckgo.py index 71da72677..b40da47b4 100644 --- a/searx/engines/duckduckgo.py +++ b/searx/engines/duckduckgo.py @@ -29,7 +29,7 @@ about = { # engine dependent config categories = ['general', 'web'] paging = True -supported_languages_url = 'https://duckduckgo.com/util/u588.js' +supported_languages_url = 'https://duckduckgo.com/util/u588.js' # <-- ISSUE/FIXME: searx.engines.__init__ won't update this URL. time_range_support = True language_aliases = { @@ -45,8 +45,13 @@ language_aliases = { time_range_dict = {'day': 'd', 'week': 'w', 'month': 'm', 'year': 'y'} # search-url -url = 'https://lite.duckduckgo.com/lite' -url_ping = 'https://duckduckgo.com/t/sl_l' +base_url = 'https://lite.duckduckgo.com' +onion_url = 'https://duckduckgogg42xjoc72x3sjasowoarfbgcmvfimaftt6twagswzczad.onion' +search_path = '/lite?' +ping_path = '/t/sl_l' + +search_url = base_url + search_path +ping_url = base_url + ping_path # match query's language to a region code that duckduckgo will accept def get_region_code(lang, lang_list=None): @@ -118,7 +123,7 @@ def request(query, params): def response(resp): headers_ping = dict_subset(resp.request.headers, ['User-Agent', 'Accept-Encoding', 'Accept', 'Cookie']) - get(url_ping, headers=headers_ping) + get(ping_url, headers=headers_ping) if resp.status_code == 303: return []