From 78137540f2e7470ec3f2960bd7b5971ee1fe35f7 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 | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/deluge/ui/sessionproxy.py b/deluge/ui/sessionproxy.py index c20d058fe..d861afdc6 100644 --- a/deluge/ui/sessionproxy.py +++ b/deluge/ui/sessionproxy.py @@ -113,13 +113,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 @@ -195,10 +198,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: