[Core] Add methods pause_torrents & resume_torrents

This commit is contained in:
Calum Lind 2017-06-28 22:30:16 +01:00
commit 3176b877a4
2 changed files with 27 additions and 10 deletions

View file

@ -600,11 +600,20 @@ class Core(component.Component):
self.torrentmanager[torrent_id].force_reannounce() self.torrentmanager[torrent_id].force_reannounce()
@export @export
def pause_torrent(self, torrent_ids): def pause_torrent(self, torrent_id):
log.debug('Pausing: %s', torrent_ids) """Pauses a torrent"""
log.debug('Pausing: %s', torrent_id)
if not isinstance(torrent_id, str if not PY2 else basestring):
self.pause_torrents(torrent_id)
self.torrentmanager[torrent_id].pause()
@export
def pause_torrents(self, torrent_ids=None):
"""Pauses a list of torrents"""
if not torrent_ids:
torrent_ids = self.torrentmanager.get_torrent_list()
for torrent_id in torrent_ids: for torrent_id in torrent_ids:
if not self.torrentmanager[torrent_id].pause(): self.pause_torrent(torrent_id)
log.warning('Error pausing torrent %s', torrent_id)
@export @export
def connect_peer(self, torrent_id, ip, port): def connect_peer(self, torrent_id, ip, port):
@ -636,10 +645,20 @@ class Core(component.Component):
component.get('EventManager').emit(SessionResumedEvent()) component.get('EventManager').emit(SessionResumedEvent())
@export @export
def resume_torrent(self, torrent_ids): def resume_torrent(self, torrent_id):
log.debug('Resuming: %s', torrent_ids) """Resumes a torrent"""
log.debug('Resuming: %s', torrent_id)
if not isinstance(torrent_id, str if not PY2 else basestring):
self.resume_torrents(torrent_id)
self.torrentmanager[torrent_id].resume()
@export
def resume_torrents(self, torrent_ids=None):
"""Resumes a list of torrents"""
if not torrent_ids:
torrent_ids = self.torrentmanager.get_torrent_list()
for torrent_id in torrent_ids: for torrent_id in torrent_ids:
self.torrentmanager[torrent_id].resume() self.resume_torrent(torrent_id)
def create_torrent_status(self, torrent_id, torrent_keys, plugin_keys, diff=False, update=False, all_keys=False): def create_torrent_status(self, torrent_id, torrent_keys, plugin_keys, diff=False, update=False, all_keys=False):
try: try:

View file

@ -1081,7 +1081,7 @@ class Torrent(object):
# Turn off auto-management so the torrent will not be unpaused by lt queueing # Turn off auto-management so the torrent will not be unpaused by lt queueing
self.handle.auto_managed(False) self.handle.auto_managed(False)
if self.state == 'Error': if self.state == 'Error':
return False log.debug('Unable to pause torrent while in Error state')
elif self.status.paused: elif self.status.paused:
# This torrent was probably paused due to being auto managed by lt # This torrent was probably paused due to being auto managed by lt
# Since we turned auto_managed off, we should update the state which should # Since we turned auto_managed off, we should update the state which should
@ -1094,8 +1094,6 @@ class Torrent(object):
self.handle.pause() self.handle.pause()
except RuntimeError as ex: except RuntimeError as ex:
log.debug('Unable to pause torrent: %s', ex) log.debug('Unable to pause torrent: %s', ex)
return False
return True
def resume(self): def resume(self):
"""Resumes this torrent.""" """Resumes this torrent."""