on master help sign in
Removed the keywords from the settings in qwant engine
commite0774c849c48373c7a49515d5d769c5868596494 authorCqoicebordel <Cqoicebordel@users.noreply.github.com> dateTue 2 Jun 2015, 22:11 (11 years ago) parentf05087b
3 files changed+26−16
searx/engines/qwant.py+17−7 searx/settings.yml−4 searx/tests/engines/test_qwant.py+9−5
searx/engines/qwant.py+17−7
@@ -19,7 +19,10 @@ categories = None
1919paging = True
2020language_support = True
2121
22−search_url_keyword = None
22+category_to_keyword = {'general': 'web',
23+ 'images': 'images',
24+ 'news': 'news',
25+ 'social media': 'social'}
2326
2427# search-url
2528url = 'https://api.qwant.com/api/search/{keyword}?count=10&offset={offset}&f=&{query}'
@@ -29,9 +32,15 @@ url = 'https://api.qwant.com/api/search/{keyword}?count=10&offset={offset}&f=&{q
2932def request(query, params):
3033 offset = (params['pageno'] - 1) * 10
3134
32− params['url'] = url.format(keyword=search_url_keyword,
33− query=urlencode({'q': query}),
34− offset=offset)
35+ if categories[0] and categories[0] in category_to_keyword:
36+
37+ params['url'] = url.format(keyword=category_to_keyword[categories[0]],
38+ query=urlencode({'q': query}),
39+ offset=offset)
40+ else:
41+ params['url'] = url.format(keyword='web',
42+ query=urlencode({'q': query}),
43+ offset=offset)
3544
3645 # add language tag if specified
3746 if params['language'] != 'all':
@@ -61,12 +70,12 @@ def response(resp):
6170 res_url = result['url']
6271 content = result['desc']
6372
64− if search_url_keyword == 'web':
73+ if category_to_keyword.get(categories[0], '') == 'web':
6574 results.append({'title': title,
6675 'content': content,
6776 'url': res_url})
6877
69− elif search_url_keyword == 'images':
78+ elif category_to_keyword.get(categories[0], '') == 'images':
7079 thumbnail_src = result['thumbnail']
7180 img_src = result['media']
7281 results.append({'template': 'images.html',
@@ -76,7 +85,8 @@ def response(resp):
7685 'thumbnail_src': thumbnail_src,
7786 'img_src': img_src})
7887
79− elif search_url_keyword == 'news' or search_url_keyword == 'social':
88+ elif (category_to_keyword.get(categories[0], '') == 'news' or
89+ category_to_keyword.get(categories[0], '') == 'social'):
8090 published_date = datetime.fromtimestamp(result['date'], None)
8191
8292 results.append({'url': res_url,
searx/settings.yml−4
@@ -171,25 +171,21 @@ engines:
171171 - name : qwant
172172 engine : qwant
173173 shortcut : qw
174− search_url_keyword : web
175174 categories : general
176175
177176 - name : qwant images
178177 engine : qwant
179178 shortcut : qwi
180− search_url_keyword : images
181179 categories : images
182180
183181 - name : qwant news
184182 engine : qwant
185183 shortcut : qwn
186− search_url_keyword : news
187184 categories : news
188185
189186 - name : qwant social
190187 engine : qwant
191188 shortcut : qws
192− search_url_keyword : social
193189 categories : social media
194190
195191 - name : kickass
searx/tests/engines/test_qwant.py+9−5
@@ -11,15 +11,19 @@ class TestQwantEngine(SearxTestCase):
1111 dicto = defaultdict(dict)
1212 dicto['pageno'] = 0
1313 dicto['language'] = 'fr_FR'
14+ qwant.categories = ['']
1415 params = qwant.request(query, dicto)
1516 self.assertIn('url', params)
1617 self.assertIn(query, params['url'])
18+ self.assertIn('web', params['url'])
1719 self.assertIn('qwant.com', params['url'])
1820 self.assertIn('fr_fr', params['url'])
1921
2022 dicto['language'] = 'all'
23+ qwant.categories = ['news']
2124 params = qwant.request(query, dicto)
2225 self.assertFalse('fr' in params['url'])
26+ self.assertIn('news', params['url'])
2327
2428 def test_response(self):
2529 self.assertRaises(AttributeError, qwant.response, None)
@@ -68,7 +72,7 @@ class TestQwantEngine(SearxTestCase):
6872 }
6973 """
7074 response = mock.Mock(text=json)
71− qwant.search_url_keyword = 'web'
75+ qwant.categories = ['general']
7276 results = qwant.response(response)
7377 self.assertEqual(type(results), list)
7478 self.assertEqual(len(results), 1)
@@ -113,7 +117,7 @@ class TestQwantEngine(SearxTestCase):
113117 }
114118 """
115119 response = mock.Mock(text=json)
116− qwant.search_url_keyword = 'images'
120+ qwant.categories = ['images']
117121 results = qwant.response(response)
118122 self.assertEqual(type(results), list)
119123 self.assertEqual(len(results), 1)
@@ -158,7 +162,7 @@ class TestQwantEngine(SearxTestCase):
158162 }
159163 """
160164 response = mock.Mock(text=json)
161− qwant.search_url_keyword = 'news'
165+ qwant.categories = ['news']
162166 results = qwant.response(response)
163167 self.assertEqual(type(results), list)
164168 self.assertEqual(len(results), 1)
@@ -202,7 +206,7 @@ class TestQwantEngine(SearxTestCase):
202206 }
203207 """
204208 response = mock.Mock(text=json)
205− qwant.search_url_keyword = 'social'
209+ qwant.categories = ['social media']
206210 results = qwant.response(response)
207211 self.assertEqual(type(results), list)
208212 self.assertEqual(len(results), 1)
@@ -246,7 +250,7 @@ class TestQwantEngine(SearxTestCase):
246250 }
247251 """
248252 response = mock.Mock(text=json)
249− qwant.search_url_keyword = ''
253+ qwant.categories = ['']
250254 results = qwant.response(response)
251255 self.assertEqual(type(results), list)
252256 self.assertEqual(len(results), 0)