|
|
|
@ -37,8 +37,15 @@ Search URL of the engine, replacements are:
|
|
|
|
|
``{pageno}``:
|
|
|
|
|
Page number if engine supports pagging :py:obj:`paging`
|
|
|
|
|
|
|
|
|
|
``{lang}``:
|
|
|
|
|
ISO 639-1 language code (en, de, fr ..)
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
lang_all='en'
|
|
|
|
|
'''Replacement ``{lang}`` in :py:obj:`search_url` if language ``all`` is
|
|
|
|
|
selected.
|
|
|
|
|
'''
|
|
|
|
|
|
|
|
|
|
soft_max_redirects = 0
|
|
|
|
|
'''Maximum redirects, soft limit. Record an error but don't stop the engine'''
|
|
|
|
|
|
|
|
|
@ -77,14 +84,15 @@ def request(query, params):
|
|
|
|
|
'''Build request parameters (see :ref:`engine request`).
|
|
|
|
|
|
|
|
|
|
'''
|
|
|
|
|
query = urlencode({'q': query})[2:]
|
|
|
|
|
|
|
|
|
|
fargs = {'query': query}
|
|
|
|
|
if paging and search_url.find('{pageno}') >= 0:
|
|
|
|
|
fargs['pageno'] = (params['pageno'] - 1) * page_size + first_page_num
|
|
|
|
|
|
|
|
|
|
lang = lang_all
|
|
|
|
|
if params['language'] != 'all':
|
|
|
|
|
lang = params['language'][:2]
|
|
|
|
|
fargs = {
|
|
|
|
|
'query': urlencode({'q': query})[2:],
|
|
|
|
|
'lang': lang,
|
|
|
|
|
'pageno': (params['pageno'] - 1) * page_size + first_page_num
|
|
|
|
|
}
|
|
|
|
|
params['url'] = search_url.format(**fargs)
|
|
|
|
|
params['query'] = query
|
|
|
|
|
params['soft_max_redirects'] = soft_max_redirects
|
|
|
|
|
logger.debug("query_url --> %s", params['url'])
|
|
|
|
|
|
|
|
|
|