add nsfw parameter for video search

This commit is contained in:
Christophe Benz 2010-04-26 19:21:21 +02:00
commit 9d7d8692ba
4 changed files with 10 additions and 5 deletions

View file

@ -57,5 +57,7 @@ class YoujizzBackend(BaseBackend, ICapVideoProvider):
def iter_page_urls(self, mozaic_url):
return self.browser.iter_page_urls(mozaic_url)
def iter_search_results(self, pattern=None, sortby=None):
def iter_search_results(self, pattern=None, sortby=ICapVideoProvider.SEARCH_RELEVANCE, nsfw=False):
if not nsfw:
return iter(set())
return self.browser.iter_search_results(pattern)

View file

@ -54,7 +54,9 @@ class YoupornBackend(BaseBackend, ICapVideoProvider):
return self.browser.get_video(_id)
SORTBY = ['relevance', 'rating', 'views', 'time']
def iter_search_results(self, pattern=None, sortby=ICapVideoProvider.SEARCH_RELEVANCE):
def iter_search_results(self, pattern=None, sortby=ICapVideoProvider.SEARCH_RELEVANCE, nsfw=False):
if not nsfw:
return iter(set())
return self.browser.iter_search_results(pattern, self.SORTBY[sortby])
@need_url

View file

@ -46,12 +46,12 @@ class YoutubeBackend(BaseBackend, ICapVideoProvider):
def get_video(self, _id):
return self.browser.get_video(_id)
def iter_search_results(self, pattern=None, sortby=ICapVideoProvider.SEARCH_RELEVANCE):
def iter_search_results(self, pattern=None, sortby=ICapVideoProvider.SEARCH_RELEVANCE, nsfw=False):
import gdata.youtube.service
yt_service = gdata.youtube.service.YouTubeService()
query = gdata.youtube.service.YouTubeVideoQuery()
query.orderby = ('relevance', 'rating', 'viewCount', 'published')[sortby]
query.racy = 'include'
query.racy = 'include' if nsfw else 'exclude'
if pattern:
query.categories.extend('/%s' % search_term.lower().encode('utf-8') for search_term in pattern.split())
feed = yt_service.YouTubeQuery(query)

View file

@ -48,13 +48,14 @@ class ICapVideoProvider(ICap):
SEARCH_VIEWS,
SEARCH_DATE) = range(4)
def iter_search_results(self, pattern=None, sortby=SEARCH_RELEVANCE):
def iter_search_results(self, pattern=None, sortby=SEARCH_RELEVANCE, nsfw=False):
"""
Iter results of a search on a pattern. Note that if pattern is None,
it get the latest videos.
@param pattern [str] pattern to search on
@param sortby [enum] sort by...
@param pattern [bool] include non-suitable for work videos if True
"""
raise NotImplementedError()