mirror of
https://github.com/searxng/searxng
synced 2024-01-01 19:24:07 +01:00
[fix] harden get_engine_locale: handle UnknownLocaleError exceptions
When a user selects an unknown or invalid locale by using the search syntax:
!qw siemens :de-TW
Before this patch a UnknownLocaleError exception will be rasied:
```
Traceback (most recent call last):
File "SearXNG/searx/search/processors/online.py", line 154, in search
search_results = self._search_basic(query, params)
File "SearXNG/searx/search/processors/online.py", line 128, in _search_basic
self.engine.request(query, params)
File "SearXNG/searx/engines/qwant.py", line 98, in request
q_locale = get_engine_locale(params['language'], supported_languages, default='en_US')
File "SearXNG/searx/locales.py", line 216, in get_engine_locale
locale = babel.Locale.parse(searxng_locale, sep='-')
File "SearXNG/local/py3/lib/python3.8/site-packages/babel/core.py", line 330, in parse
raise UnknownLocaleError(input_id)
```
This patch implements a simple exception handling, since e.g. `de-TW` does not
exists `de` will be used to get engines locale. On invalid terms like `xy-XY`
the default will be returned.
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
2bd3c2079e
commit
ef81d14ccf
1 changed files with 7 additions and 1 deletions
|
|
@ -213,7 +213,13 @@ def get_engine_locale(searxng_locale, engine_locales, default=None):
|
||||||
# need to narrow language nor territory.
|
# need to narrow language nor territory.
|
||||||
return engine_locale
|
return engine_locale
|
||||||
|
|
||||||
locale = babel.Locale.parse(searxng_locale, sep='-')
|
try:
|
||||||
|
locale = babel.Locale.parse(searxng_locale, sep='-')
|
||||||
|
except babel.core.UnknownLocaleError:
|
||||||
|
try:
|
||||||
|
locale = babel.Locale.parse(searxng_locale.split('-')[1])
|
||||||
|
except babel.core.UnknownLocaleError:
|
||||||
|
return default
|
||||||
|
|
||||||
# SearXNG's selected locale is not supported by the engine ..
|
# SearXNG's selected locale is not supported by the engine ..
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue