diff --git a/couchpotato/core/providers/nzb/newznab/__init__.py b/couchpotato/core/providers/nzb/newznab/__init__.py index b637ca8e..e54db343 100644 --- a/couchpotato/core/providers/nzb/newznab/__init__.py +++ b/couchpotato/core/providers/nzb/newznab/__init__.py @@ -10,7 +10,7 @@ config = [{ 'tab': 'searcher', 'subtab': 'providers', 'name': 'newznab', - 'description': 'Enable multiple NewzNab providers such as NZB.su', + 'description': 'Enable multiple NewzNab providers such as NZB.su and nzbs.org', 'wizard': True, 'options': [ { @@ -23,7 +23,7 @@ config = [{ }, { 'name': 'host', - 'default': 'nzb.su,dognzb.cr,beta.nzbs.org', + 'default': 'nzb.su,dognzb.cr,nzbs.org', 'description': 'The hostname of your newznab provider', }, { diff --git a/couchpotato/core/providers/nzb/nzbs/__init__.py b/couchpotato/core/providers/nzb/nzbs/__init__.py deleted file mode 100644 index 2ca89171..00000000 --- a/couchpotato/core/providers/nzb/nzbs/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ -from .main import Nzbs - -def start(): - return Nzbs() - -config = [{ - 'name': 'nzbs', - 'groups': [ - { - 'tab': 'searcher', - 'subtab': 'providers', - 'name': 'nzbs', - 'description': 'Id and Key can be found on your nzbs.org RSS page.', - 'wizard': True, - 'options': [ - { - 'name': 'enabled', - 'type': 'enabler', - }, - { - 'name': 'id', - 'label': 'Id', - 'description': 'The number after "&i="', - }, - { - 'name': 'api_key', - 'label': 'Api Key', - 'description': 'The string after "&h="' - }, - ], - }, - ], -}] diff --git a/couchpotato/core/providers/nzb/nzbs/main.py b/couchpotato/core/providers/nzb/nzbs/main.py deleted file mode 100644 index 4281f819..00000000 --- a/couchpotato/core/providers/nzb/nzbs/main.py +++ /dev/null @@ -1,96 +0,0 @@ -from couchpotato.core.event import fireEvent -from couchpotato.core.helpers.encoding import simplifyString, tryUrlencode -from couchpotato.core.helpers.rss import RSS -from couchpotato.core.logger import CPLog -from couchpotato.core.providers.nzb.base import NZBProvider -from dateutil.parser import parse -import time -import xml.etree.ElementTree as XMLTree - -log = CPLog(__name__) - - -class Nzbs(NZBProvider, RSS): - - urls = { - 'download': 'https://nzbs.org/index.php?action=getnzb&nzbid=%s%s', - 'nfo': 'https://nzbs.org/index.php?action=view&nzbid=%s&nfo=1', - 'detail': 'https://nzbs.org/index.php?action=view&nzbid=%s', - 'api': 'https://nzbs.org/rss.php', - } - - cat_ids = [ - ([4], ['720p', '1080p']), - ([2], ['cam', 'ts', 'dvdrip', 'tc', 'brrip', 'r5', 'scr']), - ([9], ['dvdr']), - ] - cat_backup_id = 't2' - - http_time_between_calls = 3 # Seconds - - def search(self, movie, quality): - - results = [] - if self.isDisabled() or not self.isAvailable(self.urls['api'] + '?test' + self.getApiExt()): - return results - - cat_id = self.getCatId(quality.get('identifier')) - arguments = tryUrlencode({ - 'action':'search', - 'q': simplifyString(movie['library']['titles'][0]['title']), - 'catid': cat_id[0], - 'i': self.conf('id'), - 'h': self.conf('api_key'), - }) - url = "%s?%s" % (self.urls['api'], arguments) - - cache_key = 'nzbs.%s.%s' % (movie['library'].get('identifier'), str(cat_id)) - - data = self.getCache(cache_key, url) - if data: - try: - try: - data = XMLTree.fromstring(data) - nzbs = self.getElements(data, 'channel/item') - except Exception, e: - log.debug('%s, %s' % (self.getName(), e)) - return results - - for nzb in nzbs: - - id = int(self.getTextElement(nzb, "link").partition('nzbid=')[2]) - new = { - 'id': id, - 'type': 'nzb', - 'provider': self.getName(), - 'name': self.getTextElement(nzb, "title"), - 'age': self.calculateAge(int(time.mktime(parse(self.getTextElement(nzb, "pubDate")).timetuple()))), - 'size': self.parseSize(self.getTextElement(nzb, "description").split('
')[1].split('">')[1]), - 'url': self.urls['download'] % (id, self.getApiExt()), - 'download': self.download, - 'detail_url': self.urls['detail'] % id, - 'description': self.getTextElement(nzb, "description"), - 'check_nzb': True, - } - new['score'] = fireEvent('score.calculate', new, movie, single = True) - - is_correct_movie = fireEvent('searcher.correct_movie', - nzb = new, movie = movie, quality = quality, - imdb_results = False, single_category = False, single = True) - - if is_correct_movie: - results.append(new) - self.found(new) - - return results - except SyntaxError: - log.error('Failed to parse XML response from NZBMatrix.com') - - return results - - - def isEnabled(self): - return NZBProvider.isEnabled(self) and self.conf('enabled') and self.conf('id') and self.conf('api_key') - - def getApiExt(self): - return '&i=%s&h=%s' % (self.conf('id'), self.conf('api_key'))