summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Resch <andrewresch@gmail.com>2010-09-03 17:11:37 -0700
committerAndrew Resch <andrewresch@gmail.com>2010-09-03 17:11:57 -0700
commitf8f72af6dc34207958b2418315fa6d772ef70037 (patch)
tree3132982395215d05c85b864630f05333b08c6b5b
parentb9caa4eeeb659358fb1739a35f2d34538e3231ca (diff)
downloaddeluge-f8f72af6dc34207958b2418315fa6d772ef70037.tar.gz
deluge-f8f72af6dc34207958b2418315fa6d772ef70037.tar.bz2
deluge-f8f72af6dc34207958b2418315fa6d772ef70037.zip
Add TorrentFileCompleted event.
-rw-r--r--deluge/core/torrentmanager.py8
-rw-r--r--deluge/event.py16
2 files changed, 24 insertions, 0 deletions
diff --git a/deluge/core/torrentmanager.py b/deluge/core/torrentmanager.py
index b8f49908c..6a799cff2 100644
--- a/deluge/core/torrentmanager.py
+++ b/deluge/core/torrentmanager.py
@@ -192,6 +192,8 @@ class TorrentManager(component.Component):
self.on_alert_metadata_received)
self.alerts.register_handler("file_error_alert",
self.on_alert_file_error)
+ self.alerts.register_handler("file_completed_alert",
+ self.on_alert_file_completed)
def start(self):
# Get the pluginmanager reference
@@ -1012,3 +1014,9 @@ class TorrentManager(component.Component):
except:
return
torrent.update_state()
+
+ def on_alert_file_completed(self, alert):
+ log.debug("file_completed_alert: %s", alert.message())
+ torrent_id = str(alert.handle.info_hash())
+ component.get("EventManager").emit(
+ TorrentFileCompletedEvent(torrent_id, alert.index))
diff --git a/deluge/event.py b/deluge/event.py
index e36913bd9..42899900b 100644
--- a/deluge/event.py
+++ b/deluge/event.py
@@ -164,6 +164,22 @@ class TorrentResumedEvent(DelugeEvent):
"""
self._args = [torrent_id]
+class TorrentFileCompletedEvent(DelugeEvent):
+ """
+ Emitted when a file completes.
+
+ This will only work with libtorrent 0.15 or greater.
+
+ """
+ def __init__(self, torrent_id, index):
+ """
+ :param torrent_id: the torrent_id
+ :type torrent_id: string
+ :param index: the file index
+ :type index: int
+ """
+ self._args = [torrent_id, index]
+
class NewVersionAvailableEvent(DelugeEvent):
"""
Emitted when a more recent version of Deluge is available.