mirror of
https://github.com/moparisthebest/SickRage
synced 2024-12-12 11:02:21 -05:00
Fixed issues for custom RSS torrent providers
This commit is contained in:
parent
37df671ae6
commit
8141d8a170
@ -114,7 +114,8 @@ def makeNewznabProvider(configString):
|
|||||||
|
|
||||||
newznab = sys.modules['sickbeard.providers.newznab']
|
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'
|
newProvider.enabled = enabled == '1'
|
||||||
|
|
||||||
return newProvider
|
return newProvider
|
||||||
@ -122,6 +123,15 @@ def makeNewznabProvider(configString):
|
|||||||
|
|
||||||
def getTorrentRssProviderList(data):
|
def getTorrentRssProviderList(data):
|
||||||
providerList = filter(lambda x: x, [makeTorrentRssProvider(x) for x in data.split('!!!')])
|
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)
|
return filter(lambda x: x, providerList)
|
||||||
|
|
||||||
|
|
||||||
@ -129,11 +139,22 @@ def makeTorrentRssProvider(configString):
|
|||||||
if not configString:
|
if not configString:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
name, url, enabled = configString.split('|')
|
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']
|
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'
|
newProvider.enabled = enabled == '1'
|
||||||
|
|
||||||
return newProvider
|
return newProvider
|
||||||
|
@ -53,11 +53,6 @@ class NewznabProvider(generic.NZBProvider):
|
|||||||
self.search_mode = search_mode
|
self.search_mode = search_mode
|
||||||
self.search_fallback = search_fallback
|
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
|
# a 0 in the key spot indicates that no key is needed
|
||||||
if self.key == '0':
|
if self.key == '0':
|
||||||
self.needs_auth = False
|
self.needs_auth = False
|
||||||
|
@ -35,15 +35,20 @@ from lib.requests import exceptions
|
|||||||
from lib.bencode import bdecode
|
from lib.bencode import bdecode
|
||||||
|
|
||||||
class TorrentRssProvider(generic.TorrentProvider):
|
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)
|
generic.TorrentProvider.__init__(self, name)
|
||||||
self.cache = TorrentRssCache(self)
|
self.cache = TorrentRssCache(self)
|
||||||
self.url = re.sub('\/$', '', url)
|
#self.url = re.sub('\/$', '', url)
|
||||||
|
self.url = url
|
||||||
self.enabled = True
|
self.enabled = True
|
||||||
self.supportsBacklog = False
|
self.supportsBacklog = False
|
||||||
|
|
||||||
|
self.search_mode = search_mode
|
||||||
|
self.search_fallback = search_fallback
|
||||||
|
self.backlog_only = backlog_only
|
||||||
|
|
||||||
def configStr(self):
|
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):
|
def imageName(self):
|
||||||
if ek.ek(os.path.isfile, ek.ek(os.path.join, sickbeard.PROG_DIR, 'data', 'images', 'providers', self.getID() + '.png')):
|
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)
|
logger.log(u"The XML returned from the RSS feed is incomplete, this result is unusable", logger.ERROR)
|
||||||
return None
|
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)
|
return self._addCacheEntry(title, url)
|
Loading…
Reference in New Issue
Block a user