diff options
author | Markus Heiser <markus.heiser@darmarit.de> | 2023-08-23 18:30:21 +0200 |
---|---|---|
committer | Markus Heiser <markus.heiser@darmarIT.de> | 2023-08-26 07:47:07 +0200 |
commit | 0647f83a3ea3ce2bd8c5f5fc59bb676be2a790e2 (patch) | |
tree | 7c0e38beb0f1b9f502afa4f31995094bc57c30cf | |
parent | 7d806d102077ee5ce342daedd5e6a498b599ef6f (diff) | |
download | searxng-0647f83a3ea3ce2bd8c5f5fc59bb676be2a790e2.tar.gz searxng-0647f83a3ea3ce2bd8c5f5fc59bb676be2a790e2.zip |
[fix] google engine: don't overspecify the search query to Google
The method EngineTraits.get_region(..) returns engine's region string
that **best fits** to SearXNG's locale. This means it returns a
region (country) if only a language is set in the locale. By example the method
returns for a locale tag `es` a region `ES`.
Google's search parameter `cr` restricts search results to documents originating
in a particular country / in case of a locale tag (language) as described above,
this argument should be unset in the query send to Google.
Closes: https://github.com/searxng/searxng/issues/2672
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
-rw-r--r-- | searx/engines/google.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/searx/engines/google.py b/searx/engines/google.py index 9b976a17b..377c8db39 100644 --- a/searx/engines/google.py +++ b/searx/engines/google.py @@ -198,9 +198,11 @@ def get_google_info(params, eng_traits): # particular country. # https://developers.google.com/custom-search/docs/xml_results#crsp - ret_val['params']['cr'] = 'country' + country - if sxng_locale == 'all': - ret_val['params']['cr'] = '' + # specify a region (country) only if a region is given in the selected + # locale --> https://github.com/searxng/searxng/issues/2672 + ret_val['params']['cr'] = '' + if len(sxng_locale.split('-')) > 1: + ret_val['params']['cr'] = 'country' + country # gl parameter: (mandatory by Geeogle News) # The gl parameter value is a two-letter country code. For WebSearch |