forked from zaclys/searxng
[enh] improve gigablast engine
add language and safesearch support
This commit is contained in:
parent
371fc09b6f
commit
b9a9abe10d
@ -19,11 +19,21 @@ from time import time
|
||||
# engine dependent config
|
||||
categories = ['general']
|
||||
paging = True
|
||||
number_of_results = 5
|
||||
number_of_results = 10
|
||||
language_support = True
|
||||
safesearch = True
|
||||
|
||||
# search-url, invalid HTTPS certificate
|
||||
# search-url
|
||||
base_url = 'https://gigablast.com/'
|
||||
search_string = 'search?{query}&n={number_of_results}&s={offset}&format=xml&qh=0&rxiyd={rxiyd}&rand={rand}'
|
||||
search_string = 'search?{query}'\
|
||||
'&n={number_of_results}'\
|
||||
'&s={offset}'\
|
||||
'&format=xml'\
|
||||
'&qh=0'\
|
||||
'&rxiyd={rxiyd}'\
|
||||
'&rand={rand}'\
|
||||
'&qlang={lang}'\
|
||||
'&ff={safesearch}'
|
||||
|
||||
# specific xpath variables
|
||||
results_xpath = '//response//result'
|
||||
@ -36,12 +46,23 @@ content_xpath = './/sum'
|
||||
def request(query, params):
|
||||
offset = (params['pageno'] - 1) * number_of_results
|
||||
|
||||
search_path = search_string.format(
|
||||
query=urlencode({'q': query}),
|
||||
offset=offset,
|
||||
number_of_results=number_of_results,
|
||||
rxiyd=randint(10000, 10000000),
|
||||
rand=int(time()))
|
||||
if params['language'] == 'all':
|
||||
language = 'xx'
|
||||
else:
|
||||
language = params['language'][0:2]
|
||||
|
||||
if params['safesearch'] >= 1:
|
||||
safesearch = 1
|
||||
else:
|
||||
safesearch = 0
|
||||
|
||||
search_path = search_string.format(query=urlencode({'q': query}),
|
||||
offset=offset,
|
||||
number_of_results=number_of_results,
|
||||
rxiyd=randint(10000, 10000000),
|
||||
rand=int(time()),
|
||||
lang=language,
|
||||
safesearch=safesearch)
|
||||
|
||||
params['url'] = base_url + search_path
|
||||
|
||||
|
@ -10,6 +10,7 @@ class TestGigablastEngine(SearxTestCase):
|
||||
query = 'test_query'
|
||||
dicto = defaultdict(dict)
|
||||
dicto['pageno'] = 0
|
||||
dicto['language'] = 'all'
|
||||
params = gigablast.request(query, dicto)
|
||||
self.assertTrue('url' in params)
|
||||
self.assertTrue(query in params['url'])
|
||||
|
Loading…
Reference in New Issue
Block a user