From 51461cee5ed0dd1b095a275f36c016d80c345360 Mon Sep 17 00:00:00 2001 From: KevinMidboe Date: Sun, 13 May 2018 19:03:22 +0200 Subject: [PATCH] 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. --- deluge_cli.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/deluge_cli.py b/deluge_cli.py index 24eddf1..647a569 100755 --- a/deluge_cli.py +++ b/deluge_cli.py @@ -149,8 +149,8 @@ class Deluge(object): def filterOnValue(self, torrents, value): filteredTorrents = [] - value_template = {'key': None, 'name': None, value: None} for t in torrents: + value_template = {'key': None, 'name': None, value: None} value_template['key'] = t.key value_template['name'] = t.name value_template[value] = getattr(t, value) @@ -159,7 +159,7 @@ class Deluge(object): return filteredTorrents def progress(self): - attributes = ['progress', 'eta', 'state'] + attributes = ['progress', 'eta', 'state', 'finished'] all_torrents = self.get_all() torrents = [] @@ -189,21 +189,24 @@ class Torrent(object): self.finished = finished self.files = list(files) - def packed(self): + def isFolder(self): return len(self.files) > 1 + def toBool(self, value): + return True if strtobool(value) else False + @classmethod def fromDeluge(cls, d): # Receive a dict with byte values, convert all elements to string values 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'], - d['paused'], d['is_finished'], d['files']) + toBool(d['paused']), toBool(d['is_finished']), d['files']) def toJSON(self): return {'key': self.key, 'name': self.name, 'progress': self.progress, 'eta': self.eta, - 'save path': self.save_path, 'state': self.state, 'paused': self.paused, - 'finished': self.finished, 'files': self.files, 'packed': self.packed()} + 'save_path': self.save_path, 'state': self.state, 'paused': self.paused, + 'finished': self.finished, 'files': self.files, 'is_folder': self.isFolder()} def __str__(self): return "Name: {}, Progress: {}%, ETA: {}, State: {}, Paused: {}".format(