From 911cdc134b5b5de798127f7e1af40729c443a30c Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sat, 17 Apr 2010 17:28:29 +0200 Subject: [PATCH] new parameter 'sortby' to searches (relevance, rating, views and date) --- weboob/backends/youporn/backend.py | 5 ++-- weboob/backends/youporn/browser.py | 4 +-- weboob/capabilities/video.py | 8 +++++- weboob/frontends/qvideoob/main_window.py | 2 +- weboob/frontends/qvideoob/ui/main_window.ui | 30 +++++++++++++++++++++ 5 files changed, 43 insertions(+), 6 deletions(-) diff --git a/weboob/backends/youporn/backend.py b/weboob/backends/youporn/backend.py index fe81188150..03b028610f 100644 --- a/weboob/backends/youporn/backend.py +++ b/weboob/backends/youporn/backend.py @@ -53,8 +53,9 @@ def inner(self, *args, **kwargs): def get_video(self, _id): return self.browser.get_video(_id) - def iter_search_results(self, pattern=None): - return self.browser.iter_search_results(pattern) + SORTBY = ['relevance', 'rating', 'views', 'time'] + def iter_search_results(self, pattern=None, sortby=ICapVideoProvider.SEARCH_RELEVANCE): + return self.browser.iter_search_results(pattern, self.SORTBY[sortby]) @need_url def iter_page_urls(self, mozaic_url): diff --git a/weboob/backends/youporn/browser.py b/weboob/backends/youporn/browser.py index 4c2418c988..6cca34fd1c 100644 --- a/weboob/backends/youporn/browser.py +++ b/weboob/backends/youporn/browser.py @@ -43,11 +43,11 @@ def id2url(self, _id): else: return str(_id) - def iter_search_results(self, pattern): + def iter_search_results(self, pattern, sortby): if not pattern: self.home() else: - self.location('/search?query=%s' % urllib.quote_plus(pattern)) + self.location('/search/%s?query=%s' % (sortby, urllib.quote_plus(pattern))) assert self.is_on_page(IndexPage) return self.page.iter_videos() diff --git a/weboob/capabilities/video.py b/weboob/capabilities/video.py index aecaa86ec6..ea8723dec8 100644 --- a/weboob/capabilities/video.py +++ b/weboob/capabilities/video.py @@ -41,12 +41,18 @@ class ICapVideoProvider(ICap): def iter_page_urls(self, mozaic_url): raise NotImplementedError() - def iter_search_results(self, pattern=None): + (SEARCH_RELEVANCE, + SEARCH_RATING, + SEARCH_VIEWS, + SEARCH_DATE) = range(4) + + def iter_search_results(self, pattern=None, sortby=SEARCH_RELEVANCE): """ 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... """ raise NotImplementedError() diff --git a/weboob/frontends/qvideoob/main_window.py b/weboob/frontends/qvideoob/main_window.py index 042a7107f2..82e3011376 100644 --- a/weboob/frontends/qvideoob/main_window.py +++ b/weboob/frontends/qvideoob/main_window.py @@ -68,7 +68,7 @@ def search(self): for backend in self.weboob.iter_backends(): if backend_name and backend.name != backend_name: continue - for video in backend.iter_search_results(pattern): + for video in backend.iter_search_results(pattern, self.ui.sortbyEdit.currentIndex()): minivideo = MiniVideo(backend, video) self.ui.scrollAreaContent.layout().addWidget(minivideo) self.minivideos.append(minivideo) diff --git a/weboob/frontends/qvideoob/ui/main_window.ui b/weboob/frontends/qvideoob/ui/main_window.ui index bae534a425..8be8a9aa48 100644 --- a/weboob/frontends/qvideoob/ui/main_window.ui +++ b/weboob/frontends/qvideoob/ui/main_window.ui @@ -34,6 +34,36 @@ + + + + + 0 + 0 + + + + + Relevance + + + + + Rating + + + + + Duration + + + + + Date + + + + -- GitLab