diff options
| author | asciimoo <asciimoo@gmail.com> | 2014-01-31 04:35:23 +0100 |
|---|---|---|
| committer | asciimoo <asciimoo@gmail.com> | 2014-01-31 04:35:23 +0100 |
| commit | 2a788c8f29f63bc069436f1a12343a47d66f2523 (patch) | |
| tree | cc44113f213cd565797d3c9a87e8afe72ccf5539 /searx/engines/wikipedia.py | |
| parent | 90a93422865b81ce256ab02a367a4d3529eb2d18 (diff) | |
[enh] search language support init
Diffstat (limited to 'searx/engines/wikipedia.py')
| -rw-r--r-- | searx/engines/wikipedia.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/searx/engines/wikipedia.py b/searx/engines/wikipedia.py new file mode 100644 index 000000000..1e2a798cc --- /dev/null +++ b/searx/engines/wikipedia.py @@ -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)]] |