diff --git a/weboob/backends/youjizz/backend.py b/weboob/backends/youjizz/backend.py index 603aeebe..b55fd89f 100644 --- a/weboob/backends/youjizz/backend.py +++ b/weboob/backends/youjizz/backend.py @@ -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) diff --git a/weboob/backends/youporn/backend.py b/weboob/backends/youporn/backend.py index 1f2029ae..fa50c909 100644 --- a/weboob/backends/youporn/backend.py +++ b/weboob/backends/youporn/backend.py @@ -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 diff --git a/weboob/backends/youtube/backend.py b/weboob/backends/youtube/backend.py index 5c89dd65..ce8145e3 100644 --- a/weboob/backends/youtube/backend.py +++ b/weboob/backends/youtube/backend.py @@ -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) diff --git a/weboob/capabilities/video.py b/weboob/capabilities/video.py index 2383b545..dff5f963 100644 --- a/weboob/capabilities/video.py +++ b/weboob/capabilities/video.py @@ -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()