@@ -22,10 +22,15 @@ from searx.utils import list_get
2222categories = ['news']
2323paging = True
2424language_support = True
25+time_range_support = True
2526
2627# search-url
2728base_url = 'https://www.bing.com/'
2829search_string = 'news/search?{query}&first={offset}&format=RSS'
30+search_string_with_time = 'news/search?{query}&first={offset}&qft=interval%3d"{interval}"&format=RSS'
31+time_range_dict = {'day': '7',
32+ 'week': '8',
33+ 'month': '9'}
2934
3035
3136# remove click
@@ -46,6 +51,19 @@ def image_url_cleanup(url_string):
4651 return url_string
4752
4853
54+def _get_url(query, language, offset, time_range):
55+ if time_range in time_range_dict:
56+ search_path = search_string_with_time.format(
57+ query=urlencode({'q': query, 'setmkt': language}),
58+ offset=offset,
59+ interval=time_range_dict[time_range])
60+ else:
61+ search_path = search_string.format(
62+ query=urlencode({'q': query, 'setmkt': language}),
63+ offset=offset)
64+ return base_url + search_path
65+
66+
4967# do search-request
5068def request(query, params):
5169 offset = (params['pageno'] - 1) * 10 + 1
@@ -55,11 +73,7 @@ def request(query, params):
5573 else:
5674 language = params['language'].replace('_', '-')
5775
58− search_path = search_string.format(
59− query=urlencode({'q': query, 'setmkt': language}),
60− offset=offset)
61−
62− params['url'] = base_url + search_path
76+ params['url'] = _get_url(query, language, offset, params['time_range'])
6377
6478 return params
6579