Private GIT

Skip to content
Snippets Groups Projects
Commit 8141d8a1 authored by echel0n's avatar echel0n
Browse files

Fixed issues for custom RSS torrent providers

parent 37df671a
No related branches found
No related tags found
No related merge requests found
......@@ -114,7 +114,8 @@ def makeNewznabProvider(configString):
newznab = sys.modules['sickbeard.providers.newznab']
newProvider = newznab.NewznabProvider(name, url, key=key, catIDs=catIDs, search_mode=search_mode, search_fallback=search_fallback)
newProvider = newznab.NewznabProvider(name, url, key=key, catIDs=catIDs, search_mode=search_mode,
search_fallback=search_fallback)
newProvider.enabled = enabled == '1'
return newProvider
......@@ -122,6 +123,15 @@ def makeNewznabProvider(configString):
def getTorrentRssProviderList(data):
providerList = filter(lambda x: x, [makeTorrentRssProvider(x) for x in data.split('!!!')])
seen_values = set()
providerListDeduped = []
for d in providerList:
value = d.name
if value not in seen_values:
providerListDeduped.append(d)
seen_values.add(value)
return filter(lambda x: x, providerList)
......@@ -129,11 +139,22 @@ def makeTorrentRssProvider(configString):
if not configString:
return None
search_mode = 'eponly'
search_fallback = 0
backlog_only = 0
try:
name, url, enabled, search_mode, search_fallback, backlog_only = configString.split('|')
except ValueError:
try:
name, url, enabled = configString.split('|')
except ValueError:
logger.log(u"Skipping RSS Torrent provider string: '" + configString + "', incorrect format", logger.ERROR)
return None
torrentRss = sys.modules['sickbeard.providers.rsstorrent']
newProvider = torrentRss.TorrentRssProvider(name, url)
newProvider = torrentRss.TorrentRssProvider(name, url, search_mode, search_fallback, backlog_only)
newProvider.enabled = enabled == '1'
return newProvider
......
......@@ -53,11 +53,6 @@ class NewznabProvider(generic.NZBProvider):
self.search_mode = search_mode
self.search_fallback = search_fallback
if self.search_fallback == '0':
self.search_fallback = False
else:
self.search_fallback = True
# a 0 in the key spot indicates that no key is needed
if self.key == '0':
self.needs_auth = False
......
......@@ -35,15 +35,20 @@ from lib.requests import exceptions
from lib.bencode import bdecode
class TorrentRssProvider(generic.TorrentProvider):
def __init__(self, name, url):
def __init__(self, name, url, search_mode='eponly', search_fallback=False, backlog_only=False):
generic.TorrentProvider.__init__(self, name)
self.cache = TorrentRssCache(self)
self.url = re.sub('\/$', '', url)
#self.url = re.sub('\/$', '', url)
self.url = url
self.enabled = True
self.supportsBacklog = False
self.search_mode = search_mode
self.search_fallback = search_fallback
self.backlog_only = backlog_only
def configStr(self):
return self.name + '|' + self.url + '|' + str(int(self.enabled))
return self.name + '|' + self.url + '|' + str(int(self.enabled)) + '|' + self.search_mode + '|' + str(int(self.search_fallback)) + '|' + str(int(self.backlog_only))
def imageName(self):
if ek.ek(os.path.isfile, ek.ek(os.path.join, sickbeard.PROG_DIR, 'data', 'images', 'providers', self.getID() + '.png')):
......@@ -164,5 +169,5 @@ class TorrentRssCache(tvcache.TVCache):
logger.log(u"The XML returned from the RSS feed is incomplete, this result is unusable", logger.ERROR)
return None
logger.log(u"RSS Feed provider: [" + self.provider.name + "] Attempting to add item to cache: " + title, logger.DEBUG)
logger.log(u"Attempting to add item to cache: " + title, logger.DEBUG)
return self._addCacheEntry(title, url)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment