From 6c87008d7b27894921cdf2b18e93f5ff9a57b555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joel=20K=C3=A5berg?= Date: Fri, 6 Dec 2013 12:46:36 +0100 Subject: [PATCH] update Nzbclub for tv branch --- couchpotato/core/providers/nzb/nzbclub/main.py | 65 ++++++++++++++++++++------ 1 file changed, 51 insertions(+), 14 deletions(-) diff --git a/couchpotato/core/providers/nzb/nzbclub/main.py b/couchpotato/core/providers/nzb/nzbclub/main.py index 59382df..2de94df 100644 --- a/couchpotato/core/providers/nzb/nzbclub/main.py +++ b/couchpotato/core/providers/nzb/nzbclub/main.py @@ -3,14 +3,22 @@ from couchpotato.core.helpers.encoding import toUnicode, tryUrlencode from couchpotato.core.helpers.rss import RSS from couchpotato.core.helpers.variable import tryInt from couchpotato.core.logger import CPLog +from couchpotato.core.event import fireEvent +from couchpotato.core.providers.base import MultiProvider +from couchpotato.core.providers.info.base import MovieProvider, SeasonProvider, EpisodeProvider from couchpotato.core.providers.nzb.base import NZBProvider from dateutil.parser import parse import time log = CPLog(__name__) +class NZBClub(MultiProvider): -class NZBClub(NZBProvider, RSS): + def getTypes(self): + return [Movie, Season, Episode] + + +class Base(NZBProvider, RSS): urls = { 'search': 'http://www.nzbclub.com/nzbfeed.aspx?%s', @@ -18,20 +26,9 @@ class NZBClub(NZBProvider, RSS): http_time_between_calls = 4 #seconds - def _searchOnTitle(self, title, movie, quality, results): - - q = '"%s %s"' % (title, movie['library']['year']) + def _search(self, media, quality, results): - params = tryUrlencode({ - 'q': q, - 'ig': 1, - 'rpp': 200, - 'st': 5, - 'sp': 1, - 'ns': 1, - }) - - nzbs = self.getRSSData(self.urls['search'] % params) + nzbs = self.getRSSData(self.urls['search'] % self.buildUrl(media)) for nzb in nzbs: @@ -78,3 +75,43 @@ class NZBClub(NZBProvider, RSS): return False return True + +class Movie(MovieProvider, Base): + + def buildUrl(self, media): + query = tryUrlencode({ + 'q': '"%s %s"' % (fireEvent('searcher.get_search_title', media['library'], include_identifier = True, + single = True), media['library']['year']), + 'ig': 1, + 'rpp': 200, + 'st': 5, + 'sp': 1, + 'ns': 1, + }) + return query + +class Season(SeasonProvider, Base): + + def buildUrl(self, media): + query = tryUrlencode({ + 'q': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'ig': 1, + 'rpp': 200, + 'st': 5, + 'sp': 1, + 'ns': 1, + }) + return query + +class Episode(EpisodeProvider, Base): + + def buildUrl(self, media): + query = tryUrlencode({ + 'q': fireEvent('searcher.get_search_title', media['library'], include_identifier = True, single = True), + 'ig': 1, + 'rpp': 200, + 'st': 5, + 'sp': 1, + 'ns': 1, + }) + return query