Merge pull request #2239 from dalf/mod-preferences
[mod] preferences.py: check language setting with a regex instead of match_language
This commit is contained in:
		
						commit
						e2cd9b65bb
					
				| @ -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 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -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: | ||||||
|  | |||||||
| @ -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 | ||||||
|  | |||||||
| @ -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') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Alexandre Flament
						Alexandre Flament