From 03419078ef438b25f7a2c6dc3a7c9fd60b9f0c35 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sat, 1 Mar 2025 09:04:21 +0100 Subject: [PATCH] [fix] bing fetch engine traits - adjusted XPath selectors Signed-off-by: Markus Heiser --- searx/engines/bing.py | 4 ++-- searx/sxng_locales.py | 2 +- searxng_extra/update/update_engine_traits.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/searx/engines/bing.py b/searx/engines/bing.py index da76f771e..47e8bb66d 100644 --- a/searx/engines/bing.py +++ b/searx/engines/bing.py @@ -223,7 +223,7 @@ def fetch_traits(engine_traits: EngineTraits): 'da': 'dk', # da --> da-dk } - for href in eval_xpath(dom, '//div[@id="language-section"]//li/a/@href'): + for href in eval_xpath(dom, '//div[@id="language-section-content"]//div[@class="languageItem"]/a/@href'): eng_lang = parse_qs(urlparse(href).query)['setlang'][0] babel_lang = map_lang.get(eng_lang, eng_lang) try: @@ -253,7 +253,7 @@ def fetch_traits(engine_traits: EngineTraits): map_market_codes = { 'zh-hk': 'en-hk', # not sure why, but at M$ this is the market code for Hongkong } - for href in eval_xpath(dom, '//div[@id="region-section"]//li/a/@href'): + for href in eval_xpath(dom, '//div[@id="region-section-content"]//div[@class="regionItem"]/a/@href'): cc_tag = parse_qs(urlparse(href).query)['cc'][0] if cc_tag == 'clear': engine_traits.all_locale = cc_tag diff --git a/searx/sxng_locales.py b/searx/sxng_locales.py index 2ff2b2cd6..34b72bf02 100644 --- a/searx/sxng_locales.py +++ b/searx/sxng_locales.py @@ -1,5 +1,5 @@ # SPDX-License-Identifier: AGPL-3.0-or-later -'''List of SearXNG's locale codes. +'''List of SearXNG's locale codes used for the search language/region. .. hint:: diff --git a/searxng_extra/update/update_engine_traits.py b/searxng_extra/update/update_engine_traits.py index 663275950..51b86c39f 100755 --- a/searxng_extra/update/update_engine_traits.py +++ b/searxng_extra/update/update_engine_traits.py @@ -28,7 +28,7 @@ from searx.enginelib.traits import EngineTraitsMap languages_file = Path(searx_dir) / 'sxng_locales.py' languages_file_header = """\ # SPDX-License-Identifier: AGPL-3.0-or-later -'''List of SearXNG's locale codes. +'''List of SearXNG's locale codes used for the search language/region. .. hint:: @@ -101,8 +101,8 @@ def fetch_traits_map(): def filter_locales(traits_map: EngineTraitsMap): """Filter language & region tags by a threshold.""" - min_eng_per_region = 18 - min_eng_per_lang = 20 + min_eng_per_region = 22 + min_eng_per_lang = 24 _ = {} for eng in traits_map.values():