You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
searxng/searx/engines
Markus Heiser c80e82a855 [mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1
Partial reverse engineering of the DuckDuckGo (DDG) engines including a
improved language and region handling based on the enigne.traits_v1 data.

- DDG Lite
- DDG Instant Answer API
- DDG Images
- DDG Weather

docs/src/searx.engine.duckduckgo.rst:
  Online documentation of the DDG engines (make docs.live)

searx/data/engine_traits.json
  Add data type "traits_v1" generated by the fetch_traits() functions from:

  - "duckduckgo" (WEB),
  - "duckduckgo images" and
  - "duckduckgo weather"

  and remove data from obsolete data type "supported_languages".

searx/autocomplete.py:
  Reversed engineered Autocomplete from DDG.  Supports DDG's languages.

searx/engines/duckduckgo.py:
  - fetch_traits():  Fetch languages & regions from DDG.

  - get_ddg_lang(): Get DDG's language identifier from SearXNG's locale.  DDG
    defines its languages by region codes.  DDG-Lite does not offer a language
    selection to the user, only a region can be selected by the user.

  - Cache ``vqd`` value: The vqd value depends on the query string and is needed
    for the follow up pages or the images loaded by a XMLHttpRequest (DDG
    images).  The ``vqd`` value of a search term is stored for 10min in the
    redis DB.

  - DDG Lite engine: reversed engineered request method with improved Language
    and region support and better ``vqd`` handling.

searx/engines/duckduckgo_definitions.py: DDG Instant Answer API
  The *instant answers* API does not support languages, or at least we could not
  find out how language support should work.  It seems that most of the features
  are based on English terms.

searx/engines/duckduckgo_images.py: DDG Images
  Reversed engineered request method.  Improved language and region handling
  based on cookies and the enigne.traits_v1 data.  Response: add image format to
  the result list

searx/engines/duckduckgo_weather.py: DDG Weather
  Improved language and region handling based on cookies and the
  enigne.traits_v1 data.

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2 years ago
..
9gag.py get the not cropped version of the thumbnail when the image height is not too important 2 years ago
1337x.py
__init__.py [mod] replace engines_languages.json by engines_traits.json 2 years ago
ahmia.py
apkmirror.py rollback test 2 years ago
apple_app_store.py remove thumbnail from results 2 years ago
apple_maps.py add poi's website and phone number, doesn't crash when there is no `displayMapRegion`, query the token on the first request 2 years ago
archlinux.py
artic.py
arxiv.py Science category: update the engines 2 years ago
bandcamp.py
base.py
bing.py [doc] add a description of bing engines (web, news, video, images) 2 years ago
bing_images.py [mod] bing_images: use async API & upgrade to data_type: traits_v1 2 years ago
bing_news.py [mod] bing_news: use async API & upgrade to data_type: traits_v1 2 years ago
bing_videos.py [mod] bing_videos: use async API & upgrade to data_type: traits_v1 2 years ago
btdigg.py
command.py
core.py [fix] doc of the paper.html template (isbn, issn) 2 years ago
crossref.py [mod] make python code pylint 2.16.1 compliant 2 years ago
currency_convert.py
dailymotion.py [mod] Dailymotion: fetch engine traits (data_type: supported_languages) 2 years ago
deepl.py [mod] add deepl translation engine 2 years ago
deezer.py
demo_offline.py [mod] replace engines_languages.json by engines_traits.json 2 years ago
demo_online.py [mod] add 'Accept-Language' HTTP header to online processores 2 years ago
deviantart.py
dictzone.py
digbt.py
docker_hub.py [mod] make python code pylint 2.16.1 compliant 2 years ago
doku.py
duckduckgo.py [mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 2 years ago
duckduckgo_definitions.py [mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 2 years ago
duckduckgo_images.py [mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 2 years ago
duckduckgo_weather.py [mod] DuckDuckGo: reversed engineered & upgrade to data_type: traits_v1 2 years ago
duden.py [fix] engine duden - don't raise exception on empty result list 2 years ago
dummy-offline.py
dummy.py
ebay.py
elasticsearch.py
emojipedia.py [fix] emojipedia - update XPath to be relative 2 years ago
fdroid.py
flickr.py
flickr_noapi.py
framalibre.py
freesound.py
frinkiac.py
genius.py
gentoo.py
gigablast.py [mod] make python code pylint 2.16.1 compliant 2 years ago
github.py [fix] typos / reported by @kianmeng in searx PR-3366 2 years ago
google.py [mod] Google: fetch engine traits (data_type: supported_languages) 2 years ago
google_images.py [mod] Google: fetch engine traits (data_type: supported_languages) 2 years ago
google_news.py [mod] Google: fetch engine traits (data_type: supported_languages) 2 years ago
google_play_apps.py [mod] add 'Accept-Language' HTTP header to online processores 2 years ago
google_scholar.py [mod] Google: fetch engine traits (data_type: supported_languages) 2 years ago
google_videos.py [mod] Google: fetch engine traits (data_type: supported_languages) 2 years ago
imdb.py
ina.py
invidious.py
jisho.py
json_engine.py
kickass.py
lingva.py
loc.py
mediathekviewweb.py
mediawiki.py
meilisearch.py
metacpan.py Add MetaCPAN engine 2 years ago
mixcloud.py
mongodb.py [fix] pyright repported errors 2 years ago
mysql_server.py [fix] pyright repported errors 2 years ago
nyaa.py
opensemantic.py
openstreetmap.py [mod] add 'Accept-Language' HTTP header to online processores 2 years ago
openverse.py
pdbe.py
peertube.py [mod] Peertube: re-engineered & upgrade to data_type: traits_v1 2 years ago
petal_images.py
photon.py [fix] typos / reported by @kianmeng in searx PR-3366 2 years ago
piratebay.py
postgresql.py [fix] pyright repported errors 2 years ago
pubmed.py Science category: update the engines 2 years ago
qwant.py [mod] qwant: fetch engine traits (data_type: traits_v1) 2 years ago
recoll.py
reddit.py
redis_server.py
rumble.py
scanr_structures.py
searchcode_code.py
searx_engine.py
semantic_scholar.py [mod] science category: various update of about PR 1705 2 years ago
sepiasearch.py
seznam.py
sjp.py [fix] sjp engine - convert enginename to a latin1 compliance name 2 years ago
solidtorrents.py
solr.py
soundcloud.py
spotify.py
springer.py [fix] springer: unsupported operand type(s) for +: 'NoneType' and 'str' 2 years ago
sqlite.py
stackexchange.py
startpage.py [mod] Startpage: reversed engineered & upgrade to data_type: traits_v1 2 years ago
tineye.py [fix] engine tineye: handle 422 response of not supported img format 2 years ago
tokyotoshokan.py
torznab.py
translated.py
twitter.py add explanation of token 2 years ago
unsplash.py
vimeo.py
wikidata.py [mod] wikipedia & wikidata: upgrade to data_type: traits_v1 2 years ago
wikipedia.py [mod] wikipedia & wikidata: upgrade to data_type: traits_v1 2 years ago
wolframalpha_api.py [fix] typos / reported by @kianmeng in searx PR-3366 2 years ago
wolframalpha_noapi.py
wordnik.py
wttr.py simplify infobox result 2 years ago
www1x.py
xpath.py [fix] typos / reported by @kianmeng in searx PR-3366 2 years ago
yacy.py
yahoo.py [mod] yahoo: fetch engine traits (data_type: traits_v1) 2 years ago
yahoo_news.py
youtube_api.py
youtube_noapi.py [fix] google & youtube - set EU consent cookie 2 years ago
zlibrary.py [fix] engine z-zlibrary https URL 2 years ago