forked from Ponysearch/Ponysearch
[mod] searx/webadapter.py: each web parameter has a dedicated function (parse_pageno, page_lang,....).
This commit is contained in:
parent
691d12726b
commit
d5b5e48f04
1 changed files with 39 additions and 25 deletions
|
@ -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…
Reference in a new issue