Created a lambda function for converting numeric boolean to python values. Changed attribute packed to isFolder. Added finished attribute to also be returned when wanting progress.

This commit is contained in:
2018-05-13 19:03:22 +02:00
parent 75bd387904
commit 51461cee5e

View File

@@ -149,8 +149,8 @@ class Deluge(object):
def filterOnValue(self, torrents, value): def filterOnValue(self, torrents, value):
filteredTorrents = [] filteredTorrents = []
value_template = {'key': None, 'name': None, value: None}
for t in torrents: for t in torrents:
value_template = {'key': None, 'name': None, value: None}
value_template['key'] = t.key value_template['key'] = t.key
value_template['name'] = t.name value_template['name'] = t.name
value_template[value] = getattr(t, value) value_template[value] = getattr(t, value)
@@ -159,7 +159,7 @@ class Deluge(object):
return filteredTorrents return filteredTorrents
def progress(self): def progress(self):
attributes = ['progress', 'eta', 'state'] attributes = ['progress', 'eta', 'state', 'finished']
all_torrents = self.get_all() all_torrents = self.get_all()
torrents = [] torrents = []
@@ -189,21 +189,24 @@ class Torrent(object):
self.finished = finished self.finished = finished
self.files = list(files) self.files = list(files)
def packed(self): def isFolder(self):
return len(self.files) > 1 return len(self.files) > 1
def toBool(self, value):
return True if strtobool(value) else False
@classmethod @classmethod
def fromDeluge(cls, d): def fromDeluge(cls, d):
# Receive a dict with byte values, convert all elements to string values # Receive a dict with byte values, convert all elements to string values
d = convert(d) d = convert(d)
d['paused'] = True if strtobool(d['paused']) else False toBool = lambda val: True if strtobool(val) else False
return cls(d['hash'], d['name'], d['progress'], d['eta'], d['save_path'], d['state'], return cls(d['hash'], d['name'], d['progress'], d['eta'], d['save_path'], d['state'],
d['paused'], d['is_finished'], d['files']) toBool(d['paused']), toBool(d['is_finished']), d['files'])
def toJSON(self): def toJSON(self):
return {'key': self.key, 'name': self.name, 'progress': self.progress, 'eta': self.eta, return {'key': self.key, 'name': self.name, 'progress': self.progress, 'eta': self.eta,
'save path': self.save_path, 'state': self.state, 'paused': self.paused, 'save_path': self.save_path, 'state': self.state, 'paused': self.paused,
'finished': self.finished, 'files': self.files, 'packed': self.packed()} 'finished': self.finished, 'files': self.files, 'is_folder': self.isFolder()}
def __str__(self): def __str__(self):
return "Name: {}, Progress: {}%, ETA: {}, State: {}, Paused: {}".format( return "Name: {}, Progress: {}%, ETA: {}, State: {}, Paused: {}".format(