diff --git a/deluge/core/core.py b/deluge/core/core.py index 1a8225230..d4a6d0128 100644 --- a/deluge/core/core.py +++ b/deluge/core/core.py @@ -718,9 +718,7 @@ class Core(component.Component): def queue_up(self, torrent_ids): log.debug("Attempting to queue %s to up", torrent_ids) #torrent_ids must be sorted before moving. - torrent_ids = list(torrent_ids) - torrent_ids.sort(key = lambda id: self.torrentmanager.torrents[id].get_queue_position()) - for torrent_id in torrent_ids: + for torrent_id in sorted(torrent_ids, key=self.torrentmanager.get_queue_position): try: # If the queue method returns True, then we should emit a signal if self.torrentmanager.queue_up(torrent_id): @@ -732,9 +730,7 @@ class Core(component.Component): def queue_down(self, torrent_ids): log.debug("Attempting to queue %s to down", torrent_ids) #torrent_ids must be sorted before moving. - torrent_ids = list(torrent_ids) - torrent_ids.sort(key = lambda id: -self.torrentmanager.torrents[id].get_queue_position()) - for torrent_id in torrent_ids: + for torrent_id in sorted(torrent_ids, key=self.torrentmanager.get_queue_position, reverse=True): try: # If the queue method returns True, then we should emit a signal if self.torrentmanager.queue_down(torrent_id): diff --git a/deluge/core/torrentmanager.py b/deluge/core/torrentmanager.py index a88f97015..c2d18cc1d 100644 --- a/deluge/core/torrentmanager.py +++ b/deluge/core/torrentmanager.py @@ -806,6 +806,10 @@ class TorrentManager(component.Component): except OSError, (errno, strerror): log.debug("Cannot Remove Folder: %s (ErrNo %s)", strerror, errno) + def get_queue_position(self, torrent_id): + """Get queue position of torrent""" + return self.torrents[torrent_id].get_queue_position() + def queue_top(self, torrent_id): """Queue torrent to top""" if self.torrents[torrent_id].get_queue_position() == 0: