diff --git a/searx/engines/bing.py b/searx/engines/bing.py index 6f3b6e047..7733eb269 100644 --- a/searx/engines/bing.py +++ b/searx/engines/bing.py @@ -72,43 +72,21 @@ def get_locale_params(engine_region: str | None) -> dict[str, str] | None: return {"mkt": engine_region} -def override_accept_language(params: "OnlineParams", engine_region: str | None) -> None: - """Override the ``Accept-Language`` header. - - The default header built by :py:class:`~searx.search.processors.online.OnlineProcessor` - appends ``en;q=0.3`` as a fallback language:: - - Accept-Language: de,de-DE;q=0.7,en;q=0.3 - - Bing seems to better select the results locale based on the - ``Accept-Language`` value header. - - This function is shared with :py:mod:`searx.engines.bing_images`, - :py:mod:`searx.engines.bing_news`, and :py:mod:`searx.engines.bing_videos`. - """ - - if not engine_region or engine_region == "clear": - return - - lang = engine_region.split("-")[0] - params["headers"]["Accept-Language"] = f"{engine_region},{lang};q=0.9" - - def request(query: str, params: "OnlineParams"): """Assemble a Bing-Web request.""" engine_region = traits.get_region(params["searxng_locale"], traits.all_locale) - override_accept_language(params, engine_region) - query_params: dict[str, str | int] = { "q": query, "adlt": _safesearch_map.get(params.get("safesearch", 0), "off"), } - locale_params = get_locale_params(engine_region) - if locale_params: - query_params.update(locale_params) + if engine_region and engine_region != "clear": + lang, _, cc = engine_region.partition("-") + query_params["setlang"] = lang + if cc and cc not in ("us", "cn", "ru"): # bing just sends junk for these + query_params["cc"] = cc params["url"] = f"{base_url}/search?{urlencode(query_params)}" diff --git a/searx/engines/bing_images.py b/searx/engines/bing_images.py index 0f32f2c7a..36fd473af 100644 --- a/searx/engines/bing_images.py +++ b/searx/engines/bing_images.py @@ -9,7 +9,6 @@ from lxml import html from searx.engines.bing import ( # pylint: disable=unused-import fetch_traits, get_locale_params, - override_accept_language, ) # about @@ -44,8 +43,6 @@ def request(query, params): engine_region = traits.get_region(params["searxng_locale"], traits.all_locale) - override_accept_language(params, engine_region) - # build URL query # - example: https://www.bing.com/images/async?q=foo&async=1&first=1&count=35 query_params = { diff --git a/searx/engines/bing_news.py b/searx/engines/bing_news.py index 44fb05e9f..6a9df335a 100644 --- a/searx/engines/bing_news.py +++ b/searx/engines/bing_news.py @@ -12,10 +12,7 @@ from urllib.parse import urlencode from lxml import html from searx.enginelib.traits import EngineTraits -from searx.engines.bing import ( - get_locale_params, - override_accept_language, -) +from searx.engines.bing import get_locale_params from searx.utils import eval_xpath, eval_xpath_getindex, eval_xpath_list, extract_text # about @@ -54,8 +51,6 @@ def request(query, params): engine_region = traits.get_region(params["searxng_locale"], traits.all_locale) - override_accept_language(params, engine_region) - # build URL query # - example: https://www.bing.com/news/infinitescrollajax?q=london&first=1 page = int(params.get("pageno", 1)) - 1 diff --git a/searx/engines/bing_videos.py b/searx/engines/bing_videos.py index 297c6b8fa..8b857aff3 100644 --- a/searx/engines/bing_videos.py +++ b/searx/engines/bing_videos.py @@ -9,7 +9,6 @@ from lxml import html from searx.engines.bing import ( # pylint: disable=unused-import fetch_traits, get_locale_params, - override_accept_language, ) from searx.engines.bing_images import time_map from searx.utils import eval_xpath, eval_xpath_getindex @@ -39,8 +38,6 @@ def request(query, params): engine_region = traits.get_region(params["searxng_locale"], traits.all_locale) - override_accept_language(params, engine_region) - # build URL query # - example: https://www.bing.com/videos/asyncv2?q=foo&async=content&first=1&count=35 query_params = {