[mod] preferences.py: check language setting with a regex instead of match_language

This commit is contained in:
Alexandre Flament 2020-10-01 11:29:31 +02:00
parent fd5fe36984
commit 507896c115
4 changed files with 8 additions and 8 deletions

View file

@ -10,7 +10,7 @@ from urllib.parse import parse_qs, urlencode
from searx import settings, autocomplete from searx import settings, autocomplete
from searx.languages import language_codes as languages from searx.languages import language_codes as languages
from searx.utils import match_language from searx.webutils import VALID_LANGUAGE_CODE
COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years COOKIE_MAX_AGE = 60 * 60 * 24 * 365 * 5 # 5 years
@ -162,9 +162,7 @@ class SearchLanguageSetting(EnumStringSetting):
"""Available choices may change, so user's value may not be in choices anymore""" """Available choices may change, so user's value may not be in choices anymore"""
def _validate_selection(self, selection): def _validate_selection(self, selection):
if selection != "" and not match_language( if selection != '' and not VALID_LANGUAGE_CODE.match(selection):
# pylint: disable=no-member
selection, self.choices, fallback=None):
raise ValidationException('Invalid language code: "{0}"'.format(selection)) raise ValidationException('Invalid language code: "{0}"'.format(selection))
def parse(self, data): def parse(self, data):
@ -181,6 +179,7 @@ class SearchLanguageSetting(EnumStringSetting):
data = lang data = lang
else: else:
data = self.value data = self.value
self._validate_selection(data)
self.value = data self.value = data

View file

@ -22,9 +22,7 @@ import re
from searx.languages import language_codes from searx.languages import language_codes
from searx.engines import categories, engines, engine_shortcuts from searx.engines import categories, engines, engine_shortcuts
from searx.search import EngineRef from searx.search import EngineRef
from searx.webutils import VALID_LANGUAGE_CODE
VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$')
class RawTextQuery: class RawTextQuery:

View file

@ -1,6 +1,7 @@
from typing import Dict, List, Optional, Tuple from typing import Dict, List, Optional, Tuple
from searx.exceptions import SearxParameterException from searx.exceptions import SearxParameterException
from searx.query import RawTextQuery, VALID_LANGUAGE_CODE from searx.webutils import VALID_LANGUAGE_CODE
from searx.query import RawTextQuery
from searx.engines import categories, engines from searx.engines import categories, engines
from searx.search import SearchQuery, EngineRef from searx.search import SearchQuery, EngineRef
from searx.preferences import Preferences from searx.preferences import Preferences

View file

@ -11,6 +11,8 @@ from codecs import getincrementalencoder
from searx import logger from searx import logger
VALID_LANGUAGE_CODE = re.compile(r'^[a-z]{2,3}(-[a-zA-Z]{2})?$')
logger = logger.getChild('webutils') logger = logger.getChild('webutils')