diff --git a/gui/slick/images/providers/shazbat.png b/gui/slick/images/providers/shazbat.png new file mode 100644 index 00000000..8f86095c Binary files /dev/null and b/gui/slick/images/providers/shazbat.png differ diff --git a/sickbeard/__init__.py b/sickbeard/__init__.py index d10b6ff0..1c58c412 100755 --- a/sickbeard/__init__.py +++ b/sickbeard/__init__.py @@ -34,7 +34,7 @@ from sickbeard import providers, metadata, config, webserveInit from sickbeard.providers.generic import GenericProvider from providers import ezrss, btn, newznab, womble, thepiratebay, oldpiratebay, torrentleech, kat, iptorrents, \ omgwtfnzbs, scc, hdtorrents, torrentday, hdbits, hounddawgs, nextgen, speedcd, nyaatorrents, fanzub, torrentbytes, animezb, \ - freshontv, bitsoup, t411, tokyotoshokan + freshontv, bitsoup, t411, tokyotoshokan, shazbat from sickbeard.config import CheckSection, check_setting_int, check_setting_str, check_setting_float, ConfigMigrator, \ naming_ep_type from sickbeard import searchBacklog, showUpdater, versionChecker, properFinder, autoPostProcesser, \ diff --git a/sickbeard/providers/__init__.py b/sickbeard/providers/__init__.py index a1d5474c..42bf3a08 100755 --- a/sickbeard/providers/__init__.py +++ b/sickbeard/providers/__init__.py @@ -40,6 +40,7 @@ __all__ = ['ezrss', 'bitsoup', 't411', 'tokyotoshokan', + 'shazbat', ] import sickbeard diff --git a/sickbeard/providers/shazbat.py b/sickbeard/providers/shazbat.py new file mode 100644 index 00000000..d723a838 --- /dev/null +++ b/sickbeard/providers/shazbat.py @@ -0,0 +1,93 @@ +# Author: Nic Wolfe +# URL: http://code.google.com/p/sickbeard/ +# +# This file is part of SickRage. +# +# SickRage is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# SickRage is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with SickRage. If not, see . + +try: + import xml.etree.cElementTree as etree +except ImportError: + import elementtree.ElementTree as etree + +import sickbeard +import generic + +from sickbeard.exceptions import ex, AuthException +from sickbeard import helpers +from sickbeard import logger +from sickbeard import tvcache + + +class ShazbatProvider(generic.TorrentProvider): + def __init__(self): + + generic.TorrentProvider.__init__(self, "Shazbat.tv") + + self.supportsBacklog = False + + self.enabled = False + self.passkey = None + self.ratio = None + self.options = None + + self.cache = ShazbatCache(self) + + self.urls = {'base_url': 'http://www.shazbat.tv/'} + self.url = self.urls['base_url'] + + def isEnabled(self): + return self.enabled + + def imageName(self): + return 'shazbat.png' + + def _checkAuth(self): + if not self.passkey: + raise AuthException("Your authentication credentials for " + self.name + " are missing, check your config.") + + return True + + def _checkAuthFromData(self, data): + if not self.passkey: + self._checkAuth() + elif not (data['entries'] and data['feed']): + logger.log(u"Incorrect authentication credentials for " + self.name, logger.DEBUG) + raise AuthException( + u"Your authentication credentials for " + self.name + " are incorrect, check your config") + + return True + + def seedRatio(self): + return self.ratio + + +class ShazbatCache(tvcache.TVCache): + def __init__(self, provider): + tvcache.TVCache.__init__(self, provider) + + # only poll Shazbat feed every 15 minutes max + self.minTime = 15 + + def _getRSSData(self): + + rss_url = self.provider.url + 'rss/recent?passkey=' + provider.passkey + '&fname=true' + logger.log(self.provider.name + u" cache update URL: " + rss_url, logger.DEBUG) + + return self.getRSSFeed(rss_url, items=['entries', 'feed']) + + def _checkAuth(self, data): + return self.provider._checkAuthFromData(data) + +provider = ShazbatProvider()