on master help sign in
add time range support for bing images
5c02b9eNoémi Ványi
searx/engines/bing_images.py+7
@@ -24,11 +24,16 @@ import re
24categories = ['images']
24categories = ['images']
25paging = True
25paging = True
26safesearch = True
26safesearch = True
27+time_range_support = True
27
28
28# search-url
29# search-url
29base_url = 'https://www.bing.com/'
30base_url = 'https://www.bing.com/'
30search_string = 'images/search?{query}&count=10&first={offset}'
31search_string = 'images/search?{query}&count=10&first={offset}'
32+time_range_string = '&qft=+filterui:age-lt{interval}'
31thumb_url = "https://www.bing.com/th?id={ihk}"
33thumb_url = "https://www.bing.com/th?id={ihk}"
34+time_range_dict = {'day': '1440',
35+ 'week': '10080',
36+ 'month': '43200'}
32
37
33# safesearch definitions
38# safesearch definitions
34safesearch_types = {2: 'STRICT',
39safesearch_types = {2: 'STRICT',
@@ -58,6 +63,8 @@ def request(query, params):
58 '&ADLT=' + safesearch_types.get(params['safesearch'], 'DEMOTE')
63 '&ADLT=' + safesearch_types.get(params['safesearch'], 'DEMOTE')
59
64
60 params['url'] = base_url + search_path
65 params['url'] = base_url + search_path
66+ if params['time_range'] in time_range_dict:
67+ params['url'] += time_range_string.format(interval=time_range_dict[params['time_range']])
61
68
62 return params
69 return params
63
70
tests/unit/engines/test_bing_images.py+1
@@ -13,6 +13,7 @@ class TestBingImagesEngine(SearxTestCase):
13 dicto['pageno'] = 1
13 dicto['pageno'] = 1
14 dicto['language'] = 'fr_FR'
14 dicto['language'] = 'fr_FR'
15 dicto['safesearch'] = 1
15 dicto['safesearch'] = 1
16+ dicto['time_range'] = ''
16 params = bing_images.request(query, dicto)
17 params = bing_images.request(query, dicto)
17 self.assertTrue('url' in params)
18 self.assertTrue('url' in params)
18 self.assertTrue(query in params['url'])
19 self.assertTrue(query in params['url'])