Fix for nzbs not being sent to sab if they contained non-ascii chars

This commit is contained in:
rembo10
2012-08-31 14:46:05 +01:00
parent 9143f9899d
commit e4c74a2be9

View File

@@ -27,7 +27,7 @@ import urllib2, cookielib
from headphones.common import USER_AGENT
from headphones import logger
from headphones import notifiers
from headphones import notifiers, helpers
def sendNZB(nzb):
@@ -64,8 +64,10 @@ def sendNZB(nzb):
# if we get a raw data result we want to upload it to SAB
elif nzb.resultType == "nzbdata":
# Sanitize the file a bit, since we can only use ascii chars with MultiPartPostHandler
nzbdata = helpers.latinToAscii(nzb.extraInfo[0])
params['mode'] = 'addfile'
multiPartParams = {"nzbfile": (nzb.name+".nzb", nzb.extraInfo[0])}
multiPartParams = {"nzbfile": (nzb.name+".nzb", nzbdata)}
if not headphones.SAB_HOST.startswith('http'):
headphones.SAB_HOST = 'http://' + headphones.SAB_HOST
@@ -78,7 +80,7 @@ def sendNZB(nzb):
try:
if nzb.resultType == "nzb":
f = urllib.urlopen(url)
f = urllib.urlopen(url)
elif nzb.resultType == "nzbdata":
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),
@@ -97,7 +99,11 @@ def sendNZB(nzb):
except httplib.InvalidURL, e:
logger.error(u"Invalid SAB host, check your config. Current host: %s" % headphones.SAB_HOST)
return False
except Exception, e:
logger.error(u"Error: " + str(e))
return False
if f == None:
logger.info(u"No data returned from SABnzbd, NZB not sent")
return False