|  | @@ -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 |  
 |