diff options
| author | Bnyro <bnyro@tutanota.com> | 2023-10-07 10:26:04 +0200 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarIT.de> | 2023-10-09 06:53:43 +0200 |
| commit | 48cb58bd2ec4eb9cb4ba416f7ece75c3c6c41e55 (patch) | |
| tree | 76f9f4e619a3391bc571e9f23ae3f6308c8df54c /searx/engines/duckduckgo_images.py | |
| parent | c3ab49cd903d27905d2da6f70699a55c9a74593e (diff) | |
[feat] duckduckgo: support for videos and news
Diffstat (limited to 'searx/engines/duckduckgo_images.py')
| -rw-r--r-- | searx/engines/duckduckgo_images.py | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/searx/engines/duckduckgo_images.py b/searx/engines/duckduckgo_images.py deleted file mode 100644 index 7e7f133b1..000000000 --- a/searx/engines/duckduckgo_images.py +++ /dev/null @@ -1,96 +0,0 @@ -# SPDX-License-Identifier: AGPL-3.0-or-later -""" -DuckDuckGo Images -~~~~~~~~~~~~~~~~~ -""" - -from typing import TYPE_CHECKING -from urllib.parse import urlencode - -from searx.engines.duckduckgo import fetch_traits # pylint: disable=unused-import -from searx.engines.duckduckgo import ( - get_ddg_lang, - get_vqd, -) -from searx.enginelib.traits import EngineTraits - -if TYPE_CHECKING: - import logging - - logger: logging.Logger - -traits: EngineTraits - -# about -about = { - "website": 'https://duckduckgo.com/', - "wikidata_id": 'Q12805', - "use_official_api": False, - "require_api_key": False, - "results": 'JSON (site requires js to get images)', -} - -# engine dependent config -categories = ['images', 'web'] -paging = True -safesearch = True -send_accept_language_header = True - -safesearch_cookies = {0: '-2', 1: None, 2: '1'} -safesearch_args = {0: '1', 1: None, 2: '1'} - - -def request(query, params): - - eng_region = traits.get_region(params['searxng_locale'], traits.all_locale) - eng_lang = get_ddg_lang(traits, params['searxng_locale']) - - args = { - 'q': query, - 'o': 'json', - # 'u': 'bing', - 'l': eng_region, - 'f': ',,,,,', - 'vqd': get_vqd(query), - } - - if params['pageno'] > 1: - args['s'] = (params['pageno'] - 1) * 100 - - params['cookies']['ad'] = eng_lang # zh_CN - params['cookies']['ah'] = eng_region # "us-en,de-de" - params['cookies']['l'] = eng_region # "hk-tzh" - - safe_search = safesearch_cookies.get(params['safesearch']) - if safe_search is not None: - params['cookies']['p'] = safe_search # "-2", "1" - safe_search = safesearch_args.get(params['safesearch']) - if safe_search is not None: - args['p'] = safe_search # "-1", "1" - - logger.debug("cookies: %s", params['cookies']) - args = urlencode(args) - params['url'] = 'https://duckduckgo.com/i.js?{args}'.format(args=args) - - return params - - -def response(resp): - results = [] - res_json = resp.json() - - for result in res_json['results']: - results.append( - { - 'template': 'images.html', - 'title': result['title'], - 'content': '', - 'thumbnail_src': result['thumbnail'], - 'img_src': result['image'], - 'url': result['url'], - 'img_format': '%s x %s' % (result['width'], result['height']), - 'source': result['source'], - } - ) - - return results |