diff options
author | Alexandre Flament <alex@al-f.net> | 2021-06-06 08:18:07 +0200 |
---|---|---|
committer | Markus Heiser <markus.heiser@darmarit.de> | 2021-06-10 10:22:01 +0200 |
commit | 1c67b6aecea8d9c7276fc1d7bef585bc4118f255 (patch) | |
tree | 6f16984beff8d267559de419474d5fa3308302ee /searx/engines/google_images.py | |
parent | 73dbee45a649bdb6363717be0670bf4f35bf06a9 (diff) | |
download | searxng-1c67b6aecea8d9c7276fc1d7bef585bc4118f255.tar.gz searxng-1c67b6aecea8d9c7276fc1d7bef585bc4118f255.zip |
[enh] google engine: supports "default language"
Same behaviour behaviour than Whoogle [1]. Only the google engine with the
"Default language" choice "(all)"" is changed by this patch.
When searching for a locate place, the result are in the expect language,
without missing results [2]:
> When a language is not specified, the language interpretation is left up to
> Google to decide how the search results should be delivered.
The query parameters are copied from Whoogle. With the ``all`` language:
- add parameter ``source=lnt``
- don't use parameter ``lr``
- don't add a ``Accept-Language`` HTTP header.
The new signature of function ``get_lang_info()`` is:
lang_info = get_lang_info(params, lang_list, custom_aliases, supported_any_language)
Argument ``supported_any_language`` is True for google.py and False for the other
google engines. With this patch the function now returns:
- query parameters: ``lang_info['params']``
- HTTP headers: ``lang_info['headers']``
- and as before this patch:
- ``lang_info['subdomain']``
- ``lang_info['country']``
- ``lang_info['language']``
[1] https://github.com/benbusby/whoogle-search
[2] https://github.com/benbusby/whoogle-search/releases/tag/v0.5.4
Diffstat (limited to 'searx/engines/google_images.py')
-rw-r--r-- | searx/engines/google_images.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/searx/engines/google_images.py b/searx/engines/google_images.py index 919c99c63..0f8f1c73e 100644 --- a/searx/engines/google_images.py +++ b/searx/engines/google_images.py @@ -101,14 +101,13 @@ def request(query, params): lang_info = get_lang_info( # pylint: disable=undefined-variable - params, supported_languages, language_aliases + params, supported_languages, language_aliases, False ) query_url = 'https://' + lang_info['subdomain'] + '/search' + "?" + urlencode({ 'q': query, 'tbm': "isch", - 'hl': lang_info['hl'], - 'lr': lang_info['lr'], + **lang_info['params'], 'ie': "utf8", 'oe': "utf8", 'num': 30, @@ -122,8 +121,8 @@ def request(query, params): logger.debug("query_url --> %s", query_url) params['url'] = query_url - logger.debug("HTTP header Accept-Language --> %s", lang_info['Accept-Language']) - params['headers']['Accept-Language'] = lang_info['Accept-Language'] + logger.debug("HTTP header Accept-Language --> %s", lang_info.get('Accept-Language')) + params['headers'].update(lang_info['headers']) params['headers']['Accept'] = ( 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' ) |