diff --git a/searx/engines/xpath.py b/searx/engines/xpath.py index 9acfb208..0f7baf2f 100644 --- a/searx/engines/xpath.py +++ b/searx/engines/xpath.py @@ -5,39 +5,9 @@ from urllib.parse import urlencode from searx.utils import extract_text, extract_url, eval_xpath, eval_xpath_list search_url = None -<<<<<<< HEAD -======= -""" -Search URL of the engine, replacements are: - -``{query}``: - Search terms from user. - -``{pageno}``: - Page number if engine supports pagging :py:obj:`paging` - -``{lang}``: - ISO 639-1 language code (en, de, fr ..) - -``{time_range}``: - :py:obj:`URL parameter ` if engine :py:obj:`supports time - range `. The value for the parameter is taken from - :py:obj:`time_range_map`. - -""" 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''' - -results_xpath = '' -'''XPath selector for the list of result items''' - ->>>>>>> 6bfe3fd0 ([enh] XPath engine - add time range support) url_xpath = None content_xpath = None title_xpath = None @@ -93,6 +63,26 @@ time_range_map = { year: 365 ''' +safe_search_support = False +'''Engine supports safe-search.''' + +safe_search_map = { + 0: '&filter=none', + 1: '&filter=moderate', + 2: '&filter=strict' +} +'''Maps safe-search value to ``{safe_search}`` in :py:obj:`search_url`. + +.. code:: yaml + + safesearch: true + safes_search_map: + 0: '&filter=none' + 1: '&filter=moderate' + 2: '&filter=strict' + +''' + def request(query, params): query = urlencode({'q': query})[2:] @@ -114,12 +104,16 @@ def request(query, params): time_range_val = time_range_map.get(params.get('time_range')) time_range = time_range_url.format(time_range_val=time_range_val) + safe_search = '' + if params['safesearch']: + safe_search = safe_search_map[params['safesearch']] + fargs = { 'query': urlencode({'q': query})[2:], 'lang': lang, 'pageno': (params['pageno'] - 1) * page_size + first_page_num, - 'time_range': time_range, - 'safe_search': safe_search, + 'time_range' : time_range, + 'safe_search' : safe_search, } params['cookies'].update(cookies)