[mod] searx/webadapter.py: each web parameter has a dedicated function (parse_pageno, page_lang,....).
This commit is contained in:
		
							parent
							
								
									691d12726b
								
							
						
					
					
						commit
						d5b5e48f04
					
				| @ -36,27 +36,14 @@ def validate_engineref_list(engineref_list, preferences): | |||||||
|     return valid, unknown, no_token |     return valid, unknown, no_token | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_search_query_from_webapp(preferences, form): | def parse_pageno(form): | ||||||
|     # no text for the query ? |  | ||||||
|     if not form.get('q'): |  | ||||||
|         raise SearxParameterException('q', '') |  | ||||||
| 
 |  | ||||||
|     # set blocked engines |  | ||||||
|     disabled_engines = preferences.engines.get_disabled() |  | ||||||
| 
 |  | ||||||
|     # parse query, if tags are set, which change |  | ||||||
|     # the serch engine or search-language |  | ||||||
|     raw_text_query = RawTextQuery(form['q'], disabled_engines) |  | ||||||
| 
 |  | ||||||
|     # set query |  | ||||||
|     query = raw_text_query.getQuery() |  | ||||||
| 
 |  | ||||||
|     # get and check page number |  | ||||||
|     pageno_param = form.get('pageno', '1') |     pageno_param = form.get('pageno', '1') | ||||||
|     if not pageno_param.isdigit() or int(pageno_param) < 1: |     if not pageno_param.isdigit() or int(pageno_param) < 1: | ||||||
|         raise SearxParameterException('pageno', pageno_param) |         raise SearxParameterException('pageno', pageno_param) | ||||||
|     query_pageno = int(pageno_param) |     return int(pageno_param) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | def parse_lang(raw_text_query, form, preferences): | ||||||
|     # get language |     # get language | ||||||
|     # set specific language if set on request, query or preferences |     # set specific language if set on request, query or preferences | ||||||
|     # TODO support search with multible languages |     # TODO support search with multible languages | ||||||
| @ -71,7 +58,10 @@ def get_search_query_from_webapp(preferences, form): | |||||||
|     if not VALID_LANGUAGE_CODE.match(query_lang): |     if not VALID_LANGUAGE_CODE.match(query_lang): | ||||||
|         raise SearxParameterException('language', query_lang) |         raise SearxParameterException('language', query_lang) | ||||||
| 
 | 
 | ||||||
|     # get safesearch |     return query_lang | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def parse_safesearch(form, preferences): | ||||||
|     if 'safesearch' in form: |     if 'safesearch' in form: | ||||||
|         query_safesearch = form.get('safesearch') |         query_safesearch = form.get('safesearch') | ||||||
|         # first check safesearch |         # first check safesearch | ||||||
| @ -85,30 +75,54 @@ def get_search_query_from_webapp(preferences, form): | |||||||
|     if query_safesearch < 0 or query_safesearch > 2: |     if query_safesearch < 0 or query_safesearch > 2: | ||||||
|         raise SearxParameterException('safesearch', query_safesearch) |         raise SearxParameterException('safesearch', query_safesearch) | ||||||
| 
 | 
 | ||||||
|     # get time_range |     return query_safesearch | ||||||
|     query_time_range = form.get('time_range') |  | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | def parse_time_range(form): | ||||||
|  |     query_time_range = form.get('time_range') | ||||||
|     # check time_range |     # check time_range | ||||||
|     query_time_range = None if query_time_range in ('', 'None') else query_time_range |     query_time_range = None if query_time_range in ('', 'None') else query_time_range | ||||||
|     if query_time_range not in (None, 'day', 'week', 'month', 'year'): |     if query_time_range not in (None, 'day', 'week', 'month', 'year'): | ||||||
|         raise SearxParameterException('time_range', query_time_range) |         raise SearxParameterException('time_range', query_time_range) | ||||||
|  |     return query_time_range | ||||||
| 
 | 
 | ||||||
|     # query_engines |  | ||||||
|     query_engineref_list = raw_text_query.enginerefs |  | ||||||
| 
 | 
 | ||||||
|     # timeout_limit | def parse_timeout(raw_text_query, form): | ||||||
|     query_timeout = raw_text_query.timeout_limit |     query_timeout = raw_text_query.timeout_limit | ||||||
|     if query_timeout is None and 'timeout_limit' in form: |     if query_timeout is None and 'timeout_limit' in form: | ||||||
|         raw_time_limit = form.get('timeout_limit') |         raw_time_limit = form.get('timeout_limit') | ||||||
|         if raw_time_limit in ['None', '']: |         if raw_time_limit in ['None', '']: | ||||||
|             raw_time_limit = None |             return None | ||||||
|         else: |         else: | ||||||
|             try: |             try: | ||||||
|                 query_timeout = float(raw_time_limit) |                 return float(raw_time_limit) | ||||||
|             except ValueError: |             except ValueError: | ||||||
|                 raise SearxParameterException('timeout_limit', raw_time_limit) |                 raise SearxParameterException('timeout_limit', raw_time_limit) | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | def get_search_query_from_webapp(preferences, form): | ||||||
|  |     # no text for the query ? | ||||||
|  |     if not form.get('q'): | ||||||
|  |         raise SearxParameterException('q', '') | ||||||
|  | 
 | ||||||
|  |     # set blocked engines | ||||||
|  |     disabled_engines = preferences.engines.get_disabled() | ||||||
|  | 
 | ||||||
|  |     # parse query, if tags are set, which change | ||||||
|  |     # the serch engine or search-language | ||||||
|  |     raw_text_query = RawTextQuery(form['q'], disabled_engines) | ||||||
|  | 
 | ||||||
|  |     # set query | ||||||
|  |     query = raw_text_query.getQuery() | ||||||
|  |     query_pageno = parse_pageno(form) | ||||||
|  |     query_lang = parse_lang(raw_text_query, form, preferences) | ||||||
|  |     query_safesearch = parse_safesearch(form, preferences) | ||||||
|  |     query_time_range = parse_time_range(form) | ||||||
|  |     query_timeout = parse_timeout(raw_text_query, form) | ||||||
|  |     external_bang = raw_text_query.external_bang | ||||||
|  | 
 | ||||||
|     # query_categories |     # query_categories | ||||||
|  |     query_engineref_list = raw_text_query.enginerefs | ||||||
|     query_categories = [] |     query_categories = [] | ||||||
| 
 | 
 | ||||||
|     # if engines are calculated from query, |     # if engines are calculated from query, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Alexandre Flament
						Alexandre Flament