From 7a22f6c77ac06756ac4d6adad3c07dd00c6d9f31 Mon Sep 17 00:00:00 2001 From: echel0n Date: Fri, 25 Apr 2014 18:49:38 -0700 Subject: [PATCH] More RSS fixes --- sickbeard/providers/dtt.py | 8 ++------ sickbeard/providers/newznab.py | 12 ++++++------ sickbeard/providers/nyaatorrents.py | 23 ++++++----------------- sickbeard/providers/nzbs_org_old.py | 10 +++------- sickbeard/providers/omgwtfnzbs.py | 5 ++--- sickbeard/providers/tvtorrents.py | 10 +++++----- sickbeard/tvcache.py | 2 +- 7 files changed, 25 insertions(+), 45 deletions(-) diff --git a/sickbeard/providers/dtt.py b/sickbeard/providers/dtt.py index 51f07b35..83e77f2d 100644 --- a/sickbeard/providers/dtt.py +++ b/sickbeard/providers/dtt.py @@ -17,17 +17,13 @@ # along with Sick Beard. If not, see . import urllib -import re - -from xml.dom.minidom import parseString - import sickbeard import generic from sickbeard.common import Quality from sickbeard import logger from sickbeard import tvcache -from sickbeard.helpers import sanitizeSceneName, get_xml_text +from sickbeard.helpers import sanitizeSceneName from sickbeard import show_name_helpers from sickbeard.exceptions import ex @@ -46,7 +42,7 @@ class DTTProvider(generic.TorrentProvider): return 'dailytvtorrents.gif' def getQuality(self, item): - url = item.getElementsByTagName('enclosure')[0].getAttribute('url') + url = item.enclosures[0].href quality = Quality.sceneQuality(url) return quality diff --git a/sickbeard/providers/newznab.py b/sickbeard/providers/newznab.py index faf53110..f627d72a 100644 --- a/sickbeard/providers/newznab.py +++ b/sickbeard/providers/newznab.py @@ -161,12 +161,12 @@ class NewznabProvider(generic.NZBProvider): return True - def _checkAuthFromData(self, parsedXML): + def _checkAuthFromData(self, data): - if parsedXML is None: + if data is None: return self._checkAuth() - status = parsedXML.status + status = data.status if status: if status == 200: return True @@ -178,7 +178,7 @@ class NewznabProvider(generic.NZBProvider): raise AuthException( "Your account isn't allowed to use the API on " + self.name + ", contact the administrator") else: - logger.log(u"Unknown error given from " + self.name + ": " + parsedXML.attrib['description'], + logger.log(u"Unknown error given from " + self.name + ": " + data.description, logger.ERROR) return False @@ -302,5 +302,5 @@ class NewznabCache(tvcache.TVCache): return data - def _checkAuth(self, parsedXML): - return self.provider._checkAuthFromData(parsedXML) + def _checkAuth(self, data): + return self.provider._checkAuthFromData(data) diff --git a/sickbeard/providers/nyaatorrents.py b/sickbeard/providers/nyaatorrents.py index 6726d227..e3265c16 100644 --- a/sickbeard/providers/nyaatorrents.py +++ b/sickbeard/providers/nyaatorrents.py @@ -17,26 +17,18 @@ # along with Sick Beard. If not, see . import urllib - -from xml.dom.minidom import parseString - import re -import sys - import sickbeard import generic -from sickbeard import show_name_helpers, helpers - +from sickbeard import show_name_helpers from sickbeard import logger from sickbeard.common import Quality -from sickbeard.exceptions import ex from sickbeard.name_parser.parser import NameParser, InvalidNameException from sickbeard import tvcache REMOTE_DBG = False - class NyaaProvider(generic.TorrentProvider): def __init__(self): @@ -58,7 +50,7 @@ class NyaaProvider(generic.TorrentProvider): def getQuality(self, item, anime=False): self.debug() - title = helpers.get_xml_text(item.getElementsByTagName('title')[0]).replace("/", " ") + title = item.title quality = Quality.sceneQuality(title) return quality @@ -87,19 +79,16 @@ class NyaaProvider(generic.TorrentProvider): logger.log(u"Search string: " + searchURL, logger.DEBUG) + data = self.getURL(searchURL) if not data: - return [] - - try: - parsedXML = parseString(data) - items = parsedXML.getElementsByTagName('item') - except Exception, e: - logger.log(u"Error trying to load NyaaTorrents RSS feed: " + ex(e), logger.ERROR) + logger.log(u"Error trying to load NyaaTorrents RSS feed: " + searchURL, logger.ERROR) logger.log(u"RSS data: " + data, logger.DEBUG) return [] + items = data.entries + results = [] for curItem in items: diff --git a/sickbeard/providers/nzbs_org_old.py b/sickbeard/providers/nzbs_org_old.py index 7ef226e0..1f3ccd8a 100644 --- a/sickbeard/providers/nzbs_org_old.py +++ b/sickbeard/providers/nzbs_org_old.py @@ -76,20 +76,16 @@ class NZBsProvider(generic.NZBProvider): logger.log(u"Search string: " + searchURL, logger.DEBUG) - data = self.getURL(searchURL) + data = self.getRSSFeed(searchURL) # Pause to avoid 503's time.sleep(5) if data == None: + logger.log(u"Error trying to load NZBs.org RSS feed: " + searchURL, logger.ERROR) return [] - try: - parsedXML = parseString(data) - items = parsedXML.getElementsByTagName('item') - except Exception, e: - logger.log(u"Error trying to load NZBs.org RSS feed: " + ex(e), logger.ERROR) - return [] + items = data.entries results = [] diff --git a/sickbeard/providers/omgwtfnzbs.py b/sickbeard/providers/omgwtfnzbs.py index 4025e7a8..cbf0ea77 100644 --- a/sickbeard/providers/omgwtfnzbs.py +++ b/sickbeard/providers/omgwtfnzbs.py @@ -179,8 +179,7 @@ class OmgwtfnzbsCache(tvcache.TVCache): return data - def _checkAuth(self, parsedXML): - return self.provider._checkAuthFromData(parsedXML) - + def _checkAuth(self, data): + return self.provider._checkAuthFromData(data) provider = OmgwtfnzbsProvider() diff --git a/sickbeard/providers/tvtorrents.py b/sickbeard/providers/tvtorrents.py index 262c4b7e..e0885a67 100644 --- a/sickbeard/providers/tvtorrents.py +++ b/sickbeard/providers/tvtorrents.py @@ -54,12 +54,12 @@ class TvTorrentsProvider(generic.TorrentProvider): return True - def _checkAuthFromData(self, parsedXML): + def _checkAuthFromData(self, data): - if parsedXML is None: + if data is None: return self._checkAuth() - description_text = helpers.get_xml_text(parsedXML.find('.//channel/description')) + description_text = data.description if "User can't be found" in description_text or "Invalid Hash" in description_text: logger.log(u"Incorrect authentication credentials for " + self.name + " : " + str(description_text), @@ -92,8 +92,8 @@ class TvTorrentsCache(tvcache.TVCache): return data - def _checkAuth(self, parsedXML): - return self.provider._checkAuthFromData(parsedXML) + def _checkAuth(self, data): + return self.provider._checkAuthFromData(data) provider = TvTorrentsProvider() diff --git a/sickbeard/tvcache.py b/sickbeard/tvcache.py index 323e6f0c..5680522f 100644 --- a/sickbeard/tvcache.py +++ b/sickbeard/tvcache.py @@ -80,7 +80,7 @@ class TVCache(): return data - def _checkAuth(self, parsedXML): + def _checkAuth(self, data): return True def _checkItemAuth(self, title, url):