Reworked some download code. #924
This commit is contained in:
1 parent
907f821e50
commit
9ebc4dbf38
3 files changed
+48
-41
No files matched your search
@@ -37,11 +37,11 @@ class Sabnzbd(Downloader):
|
|||||||
else:
|
else:
|
||||||
params['name'] = data.get('url')
|
params['name'] = data.get('url')
|
||||||
|
|
||||||
url = cleanHost(self.conf('host')) + "api?" + tryUrlencode(params)
|
url = cleanHost(self.conf('host')) + 'api?' + tryUrlencode(params)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if params.get('mode') is 'addfile':
|
if params.get('mode') is 'addfile':
|
||||||
sab = self.urlopen(url, timeout = 60, params = {"nzbfile": (nzb_filename, filedata)}, multipart = True, show_error = False)
|
sab = self.urlopen(url, timeout = 60, params = {'nzbfile': (nzb_filename, filedata)}, multipart = True, show_error = False)
|
||||||
else:
|
else:
|
||||||
sab = self.urlopen(url, timeout = 60, show_error = False)
|
sab = self.urlopen(url, timeout = 60, show_error = False)
|
||||||
except URLError:
|
except URLError:
|
||||||
@@ -53,13 +53,12 @@ class Sabnzbd(Downloader):
|
|||||||
|
|
||||||
result = sab.strip()
|
result = sab.strip()
|
||||||
if not result:
|
if not result:
|
||||||
log.error("SABnzbd didn't return anything.")
|
log.error('SABnzbd didn\'t return anything.')
|
||||||
return False
|
return False
|
||||||
|
|
||||||
log.debug("Result text from SAB: " + result[:40])
|
log.debug('Result text from SAB: %s', result[:40])
|
||||||
print result
|
if result[:2] == 'ok':
|
||||||
if result == "ok":
|
log.info('NZB sent to SAB successfully.')
|
||||||
log.info("NZB sent to SAB successfully.")
|
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
log.error(result[:40])
|
log.error(result[:40])
|
||||||
@@ -143,14 +142,19 @@ class Sabnzbd(Downloader):
|
|||||||
|
|
||||||
def call(self, params, use_json = True):
|
def call(self, params, use_json = True):
|
||||||
|
|
||||||
url = cleanHost(self.conf('host')) + "api?" + tryUrlencode(mergeDicts(params, {
|
url = cleanHost(self.conf('host')) + 'api?' + tryUrlencode(mergeDicts(params, {
|
||||||
'apikey': self.conf('api_key'),
|
'apikey': self.conf('api_key'),
|
||||||
'output': 'json'
|
'output': 'json'
|
||||||
}))
|
}))
|
||||||
|
|
||||||
data = self.urlopen(url, timeout = 60, show_error = False)
|
data = self.urlopen(url, timeout = 60, show_error = False)
|
||||||
if use_json:
|
if use_json:
|
||||||
return json.loads(data)[params['mode']]
|
d = json.loads(data)
|
||||||
|
if d.get('error'):
|
||||||
|
log.error('Error getting data from SABNZBd: %s', d.get('error'))
|
||||||
|
return {}
|
||||||
|
|
||||||
|
return d[params['mode']]
|
||||||
else:
|
else:
|
||||||
return data
|
return data
|
||||||
|
|
||||||
@@ -30,10 +30,10 @@ class Notification(Plugin):
|
|||||||
addEvent(listener, self.createNotifyHandler(listener))
|
addEvent(listener, self.createNotifyHandler(listener))
|
||||||
|
|
||||||
def createNotifyHandler(self, listener):
|
def createNotifyHandler(self, listener):
|
||||||
def notify(message = None, group = {}, data = {}):
|
def notify(message = None, group = {}, data = None):
|
||||||
if not self.conf('on_snatch', default = True) and listener == 'movie.snatched':
|
if not self.conf('on_snatch', default = True) and listener == 'movie.snatched':
|
||||||
return
|
return
|
||||||
return self.notify(message = message, data = group if group != {} else data, listener = listener)
|
return self.notify(message = message, data = data if data else group, listener = listener)
|
||||||
|
|
||||||
return notify
|
return notify
|
||||||
|
|
||||||
|
|||||||
@@ -180,10 +180,8 @@ class Searcher(Plugin):
|
|||||||
status_id = available_status.get('id')
|
status_id = available_status.get('id')
|
||||||
)
|
)
|
||||||
db.add(rls)
|
db.add(rls)
|
||||||
db.commit()
|
|
||||||
else:
|
else:
|
||||||
[db.delete(info) for info in rls.info]
|
[db.delete(info) for info in rls.info]
|
||||||
db.commit()
|
|
||||||
|
|
||||||
for info in nzb:
|
for info in nzb:
|
||||||
try:
|
try:
|
||||||
@@ -195,12 +193,13 @@ class Searcher(Plugin):
|
|||||||
value = toUnicode(nzb[info])
|
value = toUnicode(nzb[info])
|
||||||
)
|
)
|
||||||
rls.info.append(rls_info)
|
rls.info.append(rls_info)
|
||||||
db.commit()
|
|
||||||
except InterfaceError:
|
except InterfaceError:
|
||||||
log.debug('Couldn\'t add %s to ReleaseInfo: %s', (info, traceback.format_exc()))
|
log.debug('Couldn\'t add %s to ReleaseInfo: %s', (info, traceback.format_exc()))
|
||||||
|
|
||||||
nzb['status_id'] = rls.status_id
|
nzb['status_id'] = rls.status_id
|
||||||
|
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
|
||||||
for nzb in sorted_results:
|
for nzb in sorted_results:
|
||||||
if nzb['status_id'] == ignored_status.get('id'):
|
if nzb['status_id'] == ignored_status.get('id'):
|
||||||
@@ -245,38 +244,42 @@ class Searcher(Plugin):
|
|||||||
|
|
||||||
if successful:
|
if successful:
|
||||||
|
|
||||||
# Mark release as snatched
|
try:
|
||||||
db = get_session()
|
# Mark release as snatched
|
||||||
rls = db.query(Release).filter_by(identifier = md5(data['url'])).first()
|
db = get_session()
|
||||||
rls.status_id = snatched_status.get('id')
|
rls = db.query(Release).filter_by(identifier = md5(data['url'])).first()
|
||||||
db.commit()
|
if rls:
|
||||||
|
rls.status_id = snatched_status.get('id')
|
||||||
|
db.commit()
|
||||||
|
|
||||||
log_movie = '%s (%s) in %s' % (getTitle(movie['library']), movie['library']['year'], rls.quality.label)
|
log_movie = '%s (%s) in %s' % (getTitle(movie['library']), movie['library']['year'], rls.quality.label)
|
||||||
snatch_message = 'Snatched "%s": %s' % (data.get('name'), log_movie)
|
snatch_message = 'Snatched "%s": %s' % (data.get('name'), log_movie)
|
||||||
log.info(snatch_message)
|
log.info(snatch_message)
|
||||||
fireEvent('movie.snatched', message = snatch_message, data = rls.to_dict())
|
fireEvent('movie.snatched', message = snatch_message, data = rls.to_dict())
|
||||||
|
|
||||||
|
# If renamer isn't used, mark movie done
|
||||||
|
if not Env.setting('enabled', 'renamer'):
|
||||||
|
active_status = fireEvent('status.get', 'active', single = True)
|
||||||
|
done_status = fireEvent('status.get', 'done', single = True)
|
||||||
|
try:
|
||||||
|
if movie['status_id'] == active_status.get('id'):
|
||||||
|
for profile_type in movie['profile']['types']:
|
||||||
|
if rls and profile_type['quality_id'] == rls.quality.id and profile_type['finish']:
|
||||||
|
log.info('Renamer disabled, marking movie as finished: %s', log_movie)
|
||||||
|
|
||||||
# If renamer isn't used, mark movie done
|
# Mark release done
|
||||||
if not Env.setting('enabled', 'renamer'):
|
rls.status_id = done_status.get('id')
|
||||||
active_status = fireEvent('status.get', 'active', single = True)
|
db.commit()
|
||||||
done_status = fireEvent('status.get', 'done', single = True)
|
|
||||||
try:
|
|
||||||
if movie['status_id'] == active_status.get('id'):
|
|
||||||
for profile_type in movie['profile']['types']:
|
|
||||||
if profile_type['quality_id'] == rls.quality.id and profile_type['finish']:
|
|
||||||
log.info('Renamer disabled, marking movie as finished: %s', log_movie)
|
|
||||||
|
|
||||||
# Mark release done
|
# Mark movie done
|
||||||
rls.status_id = done_status.get('id')
|
mvie = db.query(Movie).filter_by(id = movie['id']).first()
|
||||||
db.commit()
|
mvie.status_id = done_status.get('id')
|
||||||
|
db.commit()
|
||||||
|
except:
|
||||||
|
log.error('Failed marking movie finished, renamer disabled: %s', traceback.format_exc())
|
||||||
|
|
||||||
# Mark movie done
|
except:
|
||||||
mvie = db.query(Movie).filter_by(id = movie['id']).first()
|
log.error('Failed marking movie finished: %s', traceback.format_exc())
|
||||||
mvie.status_id = done_status.get('id')
|
|
||||||
db.commit()
|
|
||||||
except Exception, e:
|
|
||||||
log.error('Failed marking movie finished: %s %s', (e, traceback.format_exc()))
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user