From c741e127b925e2d9c2f53b9319ae880bc1a9288b Mon Sep 17 00:00:00 2001 From: Asmageddon Date: Sun, 1 Jul 2012 22:34:09 +0200 Subject: [PATCH] First change outside of deluge/ui/console - fixed a problem when removing torrents --- deluge/ui/sessionproxy.py | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/deluge/ui/sessionproxy.py b/deluge/ui/sessionproxy.py index 88a77e995..b1dc29bbc 100644 --- a/deluge/ui/sessionproxy.py +++ b/deluge/ui/sessionproxy.py @@ -102,10 +102,16 @@ class SessionProxy(component.Component): """ sd = {} for torrent_id in torrent_ids: - if keys: - sd[torrent_id] = dict([(x, y) for x, y in self.torrents[torrent_id][1].iteritems() if x in keys]) - else: - sd[torrent_id] = dict(self.torrents[torrent_id][1]) + try: + if keys: + sd[torrent_id] = dict([ + (x, y) for x, y in self.torrents[torrent_id][1].iteritems() + if x in keys + ]) + else: + sd[torrent_id] = dict(self.torrents[torrent_id][1]) + except KeyError: + continue return sd @@ -179,10 +185,14 @@ class SessionProxy(component.Component): # Update the internal torrent status dict with the update values t = time.time() for key, value in result.items(): - self.torrents[key][0] = t - self.torrents[key][1].update(value) - for k in value: - self.cache_times[key][k] = t + try: + self.torrents[key][0] = t + self.torrents[key][1].update(value) + for k in value: + self.cache_times[key][k] = t + except KeyError: + #The torrent was removed + continue # Create the status dict if not torrent_ids: