on master help sign in
add time range search for youtube noapi
commitd2e0cbafb265594a23389fe58b7889ff088560f6 authorNoémi Ványi <sitbackandwait@gmail.com> dateSun 30 Oct 2016, 20:26 (10 years ago) parentf70d405
2 files changed+8
searx/engines/youtube_noapi.py+7 tests/unit/engines/test_youtube_noapi.py+1
searx/engines/youtube_noapi.py+7
@@ -17,10 +17,15 @@ from searx.utils import list_get
1717categories = ['videos', 'music']
1818paging = True
1919language_support = False
20+time_range_support = True
2021
2122# search-url
2223base_url = 'https://www.youtube.com/results'
2324search_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'}
2429
2530embedded_url = '<iframe width="540" height="304" ' +\
2631 'data-src="//www.youtube-nocookie.com/embed/{videoid}" ' +\
@@ -47,6 +52,8 @@ def extract_text_from_dom(result, xpath):
4752def request(query, params):
4853 params['url'] = search_url.format(query=quote_plus(query),
4954 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']])
5057
5158 return params
5259
tests/unit/engines/test_youtube_noapi.py+1
@@ -11,6 +11,7 @@ class TestYoutubeNoAPIEngine(SearxTestCase):
1111 query = 'test_query'
1212 dicto = defaultdict(dict)
1313 dicto['pageno'] = 0
14+ dicto['time_range'] = ''
1415 params = youtube_noapi.request(query, dicto)
1516 self.assertIn('url', params)
1617 self.assertIn(query, params['url'])