summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2023-08-23 18:30:21 +0200
committerMarkus Heiser <markus.heiser@darmarIT.de>2023-08-26 07:47:07 +0200
commit0647f83a3ea3ce2bd8c5f5fc59bb676be2a790e2 (patch)
tree7c0e38beb0f1b9f502afa4f31995094bc57c30cf
parent7d806d102077ee5ce342daedd5e6a498b599ef6f (diff)
downloadsearxng-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.py8
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