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): def iter_page_urls(self, mozaic_url):
return self.browser.iter_page_urls(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) return self.browser.iter_search_results(pattern)

View file

@ -54,7 +54,9 @@ class YoupornBackend(BaseBackend, ICapVideoProvider):
return self.browser.get_video(_id) return self.browser.get_video(_id)
SORTBY = ['relevance', 'rating', 'views', 'time'] 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]) return self.browser.iter_search_results(pattern, self.SORTBY[sortby])
@need_url @need_url

View file

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

View file

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