on master help sign in
Merge pull request #2239 from dalf/mod-preferences
e2cd9b6Alexandre Flament
searx/preferences.py+3−4
@@ -10,7 +10,7 @@ from urllib.parse import parse_qs, urlencode
10
10
11from searx import settings, autocomplete
11from searx import settings, autocomplete
12from searx.languages import language_codes as languages
12from searx.languages import language_codes as languages
13−from searx.utils import match_language
13+from searx.webutils import VALID_LANGUAGE_CODE
14
14
15
15
16COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years
16COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years
@@ -162,9 +162,7 @@ class SearchLanguageSetting(EnumStringSetting):
162 """Available choices may change, so user's value may not be in choices anymore"""
162 """Available choices may change, so user's value may not be in choices anymore"""
163
163
164 def _validate_selection(self, selection):
164 def _validate_selection(self, selection):
165− if selection != "" and not match_language(
165+ if selection != '' and not VALID_LANGUAGE_CODE.match(selection):
166− # pylint: disable=no-member
167− selection, self.choices, fallback=None):
168 raise ValidationException('Invalid language code: "{0}"'.format(selection))
166 raise ValidationException('Invalid language code: "{0}"'.format(selection))
169
167
170 def parse(self, data):
168 def parse(self, data):
@@ -181,6 +179,7 @@ class SearchLanguageSetting(EnumStringSetting):
181 data = lang
179 data = lang
182 else:
180 else:
183 data = self.value
181 data = self.value
182+ self._validate_selection(data)
184 self.value = data
183 self.value = data
185
184
186
185
searx/query.py+1−3
@@ -22,9 +22,7 @@ import re
22from searx.languages import language_codes
22from searx.languages import language_codes
23from searx.engines import categories, engines, engine_shortcuts
23from searx.engines import categories, engines, engine_shortcuts
24from searx.search import EngineRef
24from searx.search import EngineRef
25−
25+from searx.webutils import VALID_LANGUAGE_CODE
26−
27−VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$')
28
26
29
27
30class RawTextQuery:
28class RawTextQuery:
searx/webadapter.py+2−1
@@ -1,6 +1,7 @@
1from typing import Dict, List, Optional, Tuple
1from typing import Dict, List, Optional, Tuple
2from searx.exceptions import SearxParameterException
2from searx.exceptions import SearxParameterException
3+from searx.webutils import VALID_LANGUAGE_CODE
3−from searx.query import RawTextQuery, VALID_LANGUAGE_CODE
4+from searx.query import RawTextQuery
4from searx.engines import categories, engines
5from searx.engines import categories, engines
5from searx.search import SearchQuery, EngineRef
6from searx.search import SearchQuery, EngineRef
6from searx.preferences import Preferences
7from searx.preferences import Preferences
searx/webutils.py+2
@@ -11,6 +11,8 @@ from codecs import getincrementalencoder
11from searx import logger
11from searx import logger
12
12
13
13
14+VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$')
15+
14logger = logger.getChild('webutils')
16logger = logger.getChild('webutils')
15
17
16
18