on master help sign in
[enh] multilingual duckduckgo_definitions
commit6dca14e95d08479fb49314cb4093be36ac49cf94 authora01200356 <a01200356@itesm.mx> dateSun 17 Apr 2016, 16:21 (10 years ago) parent8d335db
3 files changed+11−6
searx/engines/duckduckgo_definitions.py+6−1 searx/templates/oscar/infobox.html+3−3 tests/unit/engines/test_duckduckgo_definitions.py+2−2
searx/engines/duckduckgo_definitions.py+6−1
@@ -1,5 +1,6 @@
11import json
22from urllib import urlencode
3+from re import sub
34from lxml import html
45from searx.utils import html_to_text
56from searx.engines.xpath import extract_text
@@ -19,8 +20,8 @@ def result_to_text(url, text, htmlResult):
1920
2021
2122def request(query, params):
22− # TODO add kl={locale}
2323 params['url'] = url.format(query=urlencode({'q': query}))
24+ params['headers']['Accept-Language'] = params['language']
2425 return params
2526
2627
@@ -103,6 +104,10 @@ def response(resp):
103104 urls.append({'title': search_res.get('DefinitionSource'),
104105 'url': definitionURL})
105106
107+ # to merge with wikidata's infobox
108+ if infobox_id:
109+ infobox_id = sub(r'^http:', r'https:', infobox_id)
110+
106111 # entity
107112 entity = search_res.get('Entity', None)
108113 # TODO continent / country / department / location / waterfall /
searx/templates/oscar/infobox.html+3−3
@@ -1,9 +1,9 @@
11<div class="panel panel-default infobox">
22 <div class="panel-heading">
3− <bdi><h4 class="panel-title infobox_part">{{ infobox.infobox }}</h4></bdi>
3+ <bdi><h4 class="panel-title infobox_part">{{ infobox.infobox }}</h4></bdi>
44 </div>
55 <div class="panel-body">
6− <bdi>
6+ <bdi>
77 {% if infobox.img_src %}<img class="img-responsive center-block infobox_part" src="{{ image_proxify(infobox.img_src) }}" alt="{{ infobox.infobox }}" />{% endif %}
88 {% if infobox.content %}<p class="infobox_part">{{ infobox.content }}</p>{% endif %}
99
@@ -29,6 +29,6 @@
2929 {% endfor %}
3030 </div>
3131 {% endif %}
32− </bdi>
32+ </bdi>
3333 </div>
3434</div>
tests/unit/engines/test_duckduckgo_definitions.py+2−2
@@ -123,7 +123,7 @@ class TestDDGDefinitionsEngine(SearxTestCase):
123123 self.assertEqual(results[1]['url'], 'result first url')
124124 self.assertEqual(results[2]['suggestion'], 'text')
125125 self.assertEqual(results[3]['infobox'], 'heading')
126− self.assertEqual(results[3]['id'], 'http://definition.url')
126+ self.assertEqual(results[3]['id'], 'https://definition.url')
127127 self.assertEqual(results[3]['entity'], 'Entity')
128128 self.assertIn('abstract', results[3]['content'])
129129 self.assertIn('this is the definition', results[3]['content'])
@@ -240,7 +240,7 @@ class TestDDGDefinitionsEngine(SearxTestCase):
240240 self.assertEqual(type(results), list)
241241 self.assertEqual(len(results), 1)
242242 self.assertEqual(results[0]['infobox'], 'heading')
243− self.assertEqual(results[0]['id'], 'http://definition.url')
243+ self.assertEqual(results[0]['id'], 'https://definition.url')
244244 self.assertEqual(results[0]['entity'], 'Entity')
245245 self.assertIn('abstract', results[0]['content'])
246246 self.assertIn('this is the definition', results[0]['content'])