Browse Source

add time range search for youtube noapi

Noémi Ványi 8 years ago
parent
commit
d2e0cbafb2
2 changed files with 8 additions and 0 deletions
  1. 7
    0
      searx/engines/youtube_noapi.py
  2. 1
    0
      tests/unit/engines/test_youtube_noapi.py

+ 7
- 0
searx/engines/youtube_noapi.py View File

17
 categories = ['videos', 'music']
17
 categories = ['videos', 'music']
18
 paging = True
18
 paging = True
19
 language_support = False
19
 language_support = False
20
+time_range_support = True
20
 
21
 
21
 # search-url
22
 # search-url
22
 base_url = 'https://www.youtube.com/results'
23
 base_url = 'https://www.youtube.com/results'
23
 search_url = base_url + '?search_query={query}&page={page}'
24
 search_url = base_url + '?search_query={query}&page={page}'
25
+time_range_url = '&sp=EgII{time_range}%253D%253D'
26
+time_range_dict = {'day': 'Ag',
27
+                   'week': 'Aw',
28
+                   'month': 'BA'}
24
 
29
 
25
 embedded_url = '<iframe width="540" height="304" ' +\
30
 embedded_url = '<iframe width="540" height="304" ' +\
26
     'data-src="//www.youtube-nocookie.com/embed/{videoid}" ' +\
31
     'data-src="//www.youtube-nocookie.com/embed/{videoid}" ' +\
47
 def request(query, params):
52
 def request(query, params):
48
     params['url'] = search_url.format(query=quote_plus(query),
53
     params['url'] = search_url.format(query=quote_plus(query),
49
                                       page=params['pageno'])
54
                                       page=params['pageno'])
55
+    if params['time_range'] in time_range_dict:
56
+        params['url'] += time_range_url.format(time_range=time_range_dict[params['time_range']])
50
 
57
 
51
     return params
58
     return params
52
 
59
 

+ 1
- 0
tests/unit/engines/test_youtube_noapi.py View File

11
         query = 'test_query'
11
         query = 'test_query'
12
         dicto = defaultdict(dict)
12
         dicto = defaultdict(dict)
13
         dicto['pageno'] = 0
13
         dicto['pageno'] = 0
14
+        dicto['time_range'] = ''
14
         params = youtube_noapi.request(query, dicto)
15
         params = youtube_noapi.request(query, dicto)
15
         self.assertIn('url', params)
16
         self.assertIn('url', params)
16
         self.assertIn(query, params['url'])
17
         self.assertIn(query, params['url'])