diff --git a/deluge/core/torrent.py b/deluge/core/torrent.py index 8ff80fffd..cf1732230 100644 --- a/deluge/core/torrent.py +++ b/deluge/core/torrent.py @@ -48,6 +48,7 @@ class Torrent: """ def __init__(self, filename, handle, compact, save_path, total_uploaded=0, trackers=None): + log.debug("Creating torrent object %s", str(handle.info_hash())) # Get the core config self.config = ConfigManager("core.conf") @@ -67,21 +68,18 @@ class Torrent: self.compact = compact # Where the torrent is being saved to self.save_path = save_path - # The state of the torrent - self.state = "Paused" # Holds status info so that we don't need to keep getting it from lt self.status = self.handle.status() self.torrent_info = self.handle.torrent_info() # Set the initial state - if self.status.state == deluge.common.LT_TORRENT_STATE["Allocating"]: - self.set_state("Allocating") - elif self.status.state == deluge.common.LT_TORRENT_STATE["Checking"]: - self.set_state("Checking") + self.state = "Checking" + if self.handle.is_seed(): + self.state = "Seeding" else: - self.set_state("Paused") - + self.state = "Downloading" + # Various torrent options self.max_connections = -1 self.max_upload_slots = -1 @@ -110,6 +108,8 @@ class Torrent: # Set the default file priorities to normal self.file_priorities = [1]* len(self.files) + log.debug("Torrent object created.") + def set_tracker_status(self, status): """Sets the tracker status""" self.tracker_status = status diff --git a/deluge/core/torrentmanager.py b/deluge/core/torrentmanager.py index c63b558c5..43f55a1cc 100644 --- a/deluge/core/torrentmanager.py +++ b/deluge/core/torrentmanager.py @@ -108,7 +108,7 @@ class TorrentManager(component.Component): # Create the torrents dict { torrent_id: Torrent } self.torrents = {} - # List of torrents to note set state 'Paused' on lt alert + # List of torrents to not set state 'Paused' on lt alert self.not_state_paused = [] # Register set functions @@ -251,8 +251,10 @@ class TorrentManager(component.Component): paused=True) except RuntimeError, e: log.warning("Error adding torrent: %s", e) - + + log.debug("after torrent add") if not handle or not handle.is_valid(): + log.debug("torrent handle is invalid!") # The torrent was not added to the session component.resume("AlertManager") return None @@ -260,12 +262,12 @@ class TorrentManager(component.Component): # Create a Torrent object torrent = Torrent(filename, handle, options["compact_allocation"], options["download_location"], total_uploaded, trackers) - - component.resume("AlertManager") - + log.debug("torrent: %s", torrent) # Add the torrent object to the dictionary self.torrents[torrent.torrent_id] = torrent - + log.debug("self.torrents: %s", self.torrents) + component.resume("AlertManager") + # Add the torrent to the queue if queue == -1 and self.config["queue_new_to_top"]: self.queue.insert(0, torrent.torrent_id) @@ -292,8 +294,10 @@ class TorrentManager(component.Component): torrent.state = "Queued" elif state == "Paused": torrent.state = "Paused" - elif state == None and not options["add_paused"]: + if state == None and not options["add_paused"]: torrent.handle.resume() + if state == None and options["add_paused"]: + torrent.state = "Paused" # Save the torrent file torrent.save_torrent_file(filedump) @@ -617,6 +621,7 @@ class TorrentManager(component.Component): # Get the torrent_id torrent_id = str(alert.handle.info_hash()) # Set the torrent state + log.debug("self.torrents: %s", self.torrents) if not self.torrents[torrent_id].handle.is_paused(): if self.torrents[torrent_id].handle.is_seed(): self.torrents[torrent_id].set_state("Seeding")