[mod] add 'Accept-Language' HTTP header to online processores

Most engines that support languages (and regions) use the Accept-Language from
the WEB browser to build a response that fits to the language (and region).

- add new engine option: send_accept_language_header

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2022-08-01 17:01:59 +02:00
parent a2badb4fe4
commit 8df1f0c47e
21 changed files with 52 additions and 26 deletions

View file

@ -1,6 +1,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
import typing
import babel
class EngineRef:
@ -29,6 +30,7 @@ class SearchQuery:
'query',
'engineref_list',
'lang',
'locale',
'safesearch',
'pageno',
'time_range',
@ -59,6 +61,13 @@ class SearchQuery:
self.external_bang = external_bang
self.engine_data = engine_data or {}
self.locale = None
if self.lang:
try:
self.locale = babel.Locale.parse(self.lang, sep='-')
except babel.core.UnknownLocaleError:
pass
@property
def categories(self):
return list(set(map(lambda engineref: engineref.category, self.engineref_list)))