mediawiki.py 756 B

12345678910111213141516171819202122
  1. from json import loads
  2. from urllib import urlencode, quote
  3. url = 'https://en.wikipedia.org/'
  4. search_url = url + 'w/api.php?action=query&list=search&{query}&srprop=timestamp&format=json&sroffset={offset}' # noqa
  5. number_of_results = 10
  6. def request(query, params):
  7. offset = (params['pageno'] - 1) * 10
  8. params['url'] = search_url.format(query=urlencode({'srsearch': query}),
  9. offset=offset)
  10. return params
  11. def response(resp):
  12. search_results = loads(resp.text)
  13. res = search_results.get('query', {}).get('search', [])
  14. return [{'url': url + 'wiki/' + quote(result['title'].replace(' ', '_').encode('utf-8')), # noqa
  15. 'title': result['title']} for result in res[:int(number_of_results)]]