forked from Icycoide/searxng
[enh] search language support init
This commit is contained in:
parent
90a9342286
commit
2a788c8f29
9 changed files with 162 additions and 13 deletions
30
searx/engines/wikipedia.py
Normal file
30
searx/engines/wikipedia.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
from json import loads
|
||||
from urllib import urlencode, quote
|
||||
|
||||
url = 'https://{language}.wikipedia.org/'
|
||||
|
||||
search_url = url + 'w/api.php?action=query&list=search&{query}&srprop=timestamp&format=json&sroffset={offset}' # noqa
|
||||
|
||||
number_of_results = 10
|
||||
|
||||
language_support = True
|
||||
|
||||
|
||||
def request(query, params):
|
||||
offset = (params['pageno'] - 1) * 10
|
||||
if params['language'] == 'all':
|
||||
language = 'en'
|
||||
else:
|
||||
language = params['language'].split('_')[0]
|
||||
params['language'] = language
|
||||
params['url'] = search_url.format(query=urlencode({'srsearch': query}),
|
||||
offset=offset,
|
||||
language=language)
|
||||
return params
|
||||
|
||||
|
||||
def response(resp):
|
||||
search_results = loads(resp.text)
|
||||
res = search_results.get('query', {}).get('search', [])
|
||||
return [{'url': url.format(language=resp.search_params['language']) + 'wiki/' + quote(result['title'].replace(' ', '_').encode('utf-8')), # noqa
|
||||
'title': result['title']} for result in res[:int(number_of_results)]]
|
Loading…
Add table
Add a link
Reference in a new issue