summaryrefslogtreecommitdiff
path: root/searx/engines/duckduckgo_definitions.py
diff options
context:
space:
mode:
authorAdam Tauber <asciimoo@gmail.com>2016-04-19 20:40:48 +0200
committerAdam Tauber <asciimoo@gmail.com>2016-04-19 20:40:48 +0200
commitf46057feb24132ef10c495a2e60e1a88dd80dd31 (patch)
tree1a136070c8acd73449ba6e0a4d74b52ed8b0bce6 /searx/engines/duckduckgo_definitions.py
parent817c74e52317126128c6f8740df01b8bdc51c3cf (diff)
parenta44faa77167980a414df2cbe936a52359351f455 (diff)
Merge pull request #540 from a01200356/wikipedia_infobox
[enh] wikipedia infobox
Diffstat (limited to 'searx/engines/duckduckgo_definitions.py')
-rw-r--r--searx/engines/duckduckgo_definitions.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/searx/engines/duckduckgo_definitions.py b/searx/engines/duckduckgo_definitions.py
index 793e97d22..208ccca28 100644
--- a/searx/engines/duckduckgo_definitions.py
+++ b/searx/engines/duckduckgo_definitions.py
@@ -1,5 +1,6 @@
import json
from urllib import urlencode
+from re import compile, sub
from lxml import html
from searx.utils import html_to_text
from searx.engines.xpath import extract_text
@@ -7,6 +8,8 @@ from searx.engines.xpath import extract_text
url = 'https://api.duckduckgo.com/'\
+ '?{query}&format=json&pretty=0&no_redirect=1&d=1'
+http_regex = compile(r'^http:')
+
def result_to_text(url, text, htmlResult):
# TODO : remove result ending with "Meaning" or "Category"
@@ -19,8 +22,8 @@ def result_to_text(url, text, htmlResult):
def request(query, params):
- # TODO add kl={locale}
params['url'] = url.format(query=urlencode({'q': query}))
+ params['headers']['Accept-Language'] = params['language']
return params
@@ -103,6 +106,10 @@ def response(resp):
urls.append({'title': search_res.get('DefinitionSource'),
'url': definitionURL})
+ # to merge with wikidata's infobox
+ if infobox_id:
+ infobox_id = http_regex.sub('https:', infobox_id)
+
# entity
entity = search_res.get('Entity', None)
# TODO continent / country / department / location / waterfall /