|
@@ -22,10 +22,15 @@ from searx.utils import list_get
|
22
|
22
|
categories = ['news']
|
23
|
23
|
paging = True
|
24
|
24
|
language_support = True
|
|
25
|
+time_range_support = True
|
25
|
26
|
|
26
|
27
|
# search-url
|
27
|
28
|
base_url = 'https://www.bing.com/'
|
28
|
29
|
search_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'}
|
29
|
34
|
|
30
|
35
|
|
31
|
36
|
# remove click
|
|
@@ -46,6 +51,19 @@ def image_url_cleanup(url_string):
|
46
|
51
|
return url_string
|
47
|
52
|
|
48
|
53
|
|
|
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
|
+
|
49
|
67
|
# do search-request
|
50
|
68
|
def request(query, params):
|
51
|
69
|
offset = (params['pageno'] - 1) * 10 + 1
|
|
@@ -55,11 +73,7 @@ def request(query, params):
|
55
|
73
|
else:
|
56
|
74
|
language = params['language'].replace('_', '-')
|
57
|
75
|
|
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'])
|
63
|
77
|
|
64
|
78
|
return params
|
65
|
79
|
|