on master help sign in
[mod] preferences.py: check language setting with a regex instead of match_language
commit507896c1159ae72dc1e45a4d0cf40f4654209ec0 authorAlexandre Flament <alex@al-f.net> dateThu 1 Oct 2020, 11:29 (6 years ago) parentfd5fe36
4 files changed+8−8
searx/preferences.py+3−4 searx/query.py+1−3 searx/webadapter.py+2−1 searx/webutils.py+2
searx/preferences.py+3−4
@@ -10,7 +10,7 @@ from urllib.parse import parse_qs, urlencode
1010
1111from searx import settings, autocomplete
1212from searx.languages import language_codes as languages
13−from searx.utils import match_language
13+from searx.webutils import VALID_LANGUAGE_CODE
1414
1515
1616COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years
@@ -162,9 +162,7 @@ class SearchLanguageSetting(EnumStringSetting):
162162 """Available choices may change, so user's value may not be in choices anymore"""
163163
164164 def _validate_selection(self, selection):
165− if selection != "" and not match_language(
166− # pylint: disable=no-member
167− selection, self.choices, fallback=None):
165+ if selection != '' and not VALID_LANGUAGE_CODE.match(selection):
168166 raise ValidationException('Invalid language code: "{0}"'.format(selection))
169167
170168 def parse(self, data):
@@ -181,6 +179,7 @@ class SearchLanguageSetting(EnumStringSetting):
181179 data = lang
182180 else:
183181 data = self.value
182+ self._validate_selection(data)
184183 self.value = data
185184
186185
searx/query.py+1−3
@@ -22,9 +22,7 @@ import re
2222from searx.languages import language_codes
2323from searx.engines import categories, engines, engine_shortcuts
2424from searx.search import EngineRef
25−
26−
27−VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$')
25+from searx.webutils import VALID_LANGUAGE_CODE
2826
2927
3028class RawTextQuery:
searx/webadapter.py+2−1
@@ -1,6 +1,7 @@
11from typing import Dict, List, Optional, Tuple
22from searx.exceptions import SearxParameterException
3−from searx.query import RawTextQuery, VALID_LANGUAGE_CODE
3+from searx.webutils import VALID_LANGUAGE_CODE
4+from searx.query import RawTextQuery
45from searx.engines import categories, engines
56from searx.search import SearchQuery, EngineRef
67from searx.preferences import Preferences
searx/webutils.py+2
@@ -11,6 +11,8 @@ from codecs import getincrementalencoder
1111from searx import logger
1212
1313
14+VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$')
15+
1416logger = logger.getChild('webutils')
1517
1618