mirror of
https://git.deluge-torrent.org/deluge
synced 2025-08-02 22:48:40 +00:00
Fix files list when using magnet uris
This commit is contained in:
parent
e6135aa2a9
commit
20dc0a5e8a
2 changed files with 16 additions and 19 deletions
|
@ -113,9 +113,6 @@ class Torrent:
|
||||||
except RuntimeError:
|
except RuntimeError:
|
||||||
self.torrent_info = None
|
self.torrent_info = None
|
||||||
|
|
||||||
# Files dictionary
|
|
||||||
self.files = self.get_files()
|
|
||||||
|
|
||||||
# Default total_uploaded to 0, this may be changed by the state
|
# Default total_uploaded to 0, this may be changed by the state
|
||||||
self.total_uploaded = 0
|
self.total_uploaded = 0
|
||||||
|
|
||||||
|
@ -254,7 +251,7 @@ class Torrent:
|
||||||
self.options["move_completed_path"] = move_completed_path
|
self.options["move_completed_path"] = move_completed_path
|
||||||
|
|
||||||
def set_file_priorities(self, file_priorities):
|
def set_file_priorities(self, file_priorities):
|
||||||
if len(file_priorities) != len(self.files):
|
if len(file_priorities) != len(self.get_files()):
|
||||||
log.debug("file_priorities len != num_files")
|
log.debug("file_priorities len != num_files")
|
||||||
self.options["file_priorities"] = self.handle.file_priorities()
|
self.options["file_priorities"] = self.handle.file_priorities()
|
||||||
return
|
return
|
||||||
|
@ -491,7 +488,7 @@ class Torrent:
|
||||||
|
|
||||||
file_progress = self.handle.file_progress()
|
file_progress = self.handle.file_progress()
|
||||||
ret = []
|
ret = []
|
||||||
for i,f in enumerate(self.files):
|
for i,f in enumerate(self.get_files()):
|
||||||
try:
|
try:
|
||||||
ret.append(float(file_progress[i]) / float(f["size"]))
|
ret.append(float(file_progress[i]) / float(f["size"]))
|
||||||
except ZeroDivisionError:
|
except ZeroDivisionError:
|
||||||
|
@ -559,7 +556,6 @@ class Torrent:
|
||||||
"distributed_copies": distributed_copies,
|
"distributed_copies": distributed_copies,
|
||||||
"download_payload_rate": self.status.download_payload_rate,
|
"download_payload_rate": self.status.download_payload_rate,
|
||||||
"file_priorities": self.options["file_priorities"],
|
"file_priorities": self.options["file_priorities"],
|
||||||
"files": self.files,
|
|
||||||
"hash": self.torrent_id,
|
"hash": self.torrent_id,
|
||||||
"is_auto_managed": self.options["auto_managed"],
|
"is_auto_managed": self.options["auto_managed"],
|
||||||
"is_finished": self.is_finished,
|
"is_finished": self.is_finished,
|
||||||
|
@ -641,6 +637,7 @@ class Torrent:
|
||||||
"comment": ti_comment,
|
"comment": ti_comment,
|
||||||
"eta": self.get_eta,
|
"eta": self.get_eta,
|
||||||
"file_progress": self.get_file_progress,
|
"file_progress": self.get_file_progress,
|
||||||
|
"files": self.get_files,
|
||||||
"is_seed": self.handle.is_seed,
|
"is_seed": self.handle.is_seed,
|
||||||
"name": ti_name,
|
"name": ti_name,
|
||||||
"num_files": ti_num_files,
|
"num_files": ti_num_files,
|
||||||
|
@ -764,9 +761,10 @@ class Torrent:
|
||||||
self.torrent_id)
|
self.torrent_id)
|
||||||
log.debug("Writing torrent file: %s", path)
|
log.debug("Writing torrent file: %s", path)
|
||||||
try:
|
try:
|
||||||
ti = self.handle.get_torrent_info()
|
self.torrent_info = self.handle.get_torrent_info()
|
||||||
md = lt.bdecode(ti.metadata())
|
# Regenerate the file priorities
|
||||||
log.debug("md: %s", md)
|
self.set_file_priorities([])
|
||||||
|
md = lt.bdecode(self.torrent_info.metadata())
|
||||||
torrent_file = {}
|
torrent_file = {}
|
||||||
torrent_file["info"] = md
|
torrent_file["info"] = md
|
||||||
open(path, "wb").write(lt.bencode(torrent_file))
|
open(path, "wb").write(lt.bencode(torrent_file))
|
||||||
|
|
|
@ -310,16 +310,16 @@ class FilesTab(Tab):
|
||||||
self.torrent_id = torrent_id
|
self.torrent_id = torrent_id
|
||||||
status_keys += ["compact"]
|
status_keys += ["compact"]
|
||||||
|
|
||||||
if self.torrent_id not in self.files_list.keys():
|
if self.torrent_id in self.files_list:
|
||||||
# We need to get the files list
|
|
||||||
log.debug("Getting file list from core..")
|
|
||||||
status_keys += ["files"]
|
|
||||||
else:
|
|
||||||
# We already have the files list stored, so just update the view
|
# We already have the files list stored, so just update the view
|
||||||
self.update_files()
|
self.update_files()
|
||||||
|
|
||||||
|
if self.torrent_id not in self.files_list or not self.files_list[self.torrent_id]:
|
||||||
|
# We need to get the files list
|
||||||
|
log.debug("Getting file list from core..")
|
||||||
|
status_keys += ["files"]
|
||||||
|
|
||||||
client.core.get_torrent_status(self.torrent_id, status_keys).addCallback(self._on_get_torrent_status)
|
client.core.get_torrent_status(self.torrent_id, status_keys).addCallback(self._on_get_torrent_status)
|
||||||
client.force_call(True)
|
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
self.treestore.clear()
|
self.treestore.clear()
|
||||||
|
@ -328,7 +328,6 @@ class FilesTab(Tab):
|
||||||
def _on_row_activated(self, tree, path, view_column):
|
def _on_row_activated(self, tree, path, view_column):
|
||||||
if client.is_localhost:
|
if client.is_localhost:
|
||||||
client.core.get_torrent_status(self.torrent_id, ["save_path", "files"]).addCallback(self._on_open_file)
|
client.core.get_torrent_status(self.torrent_id, ["save_path", "files"]).addCallback(self._on_open_file)
|
||||||
client.force_call(False)
|
|
||||||
|
|
||||||
def get_file_path(self, row, path=""):
|
def get_file_path(self, row, path=""):
|
||||||
if not row:
|
if not row:
|
||||||
|
@ -472,15 +471,15 @@ class FilesTab(Tab):
|
||||||
|
|
||||||
self.file_menu.popup(None, None, None, event.button, event.time)
|
self.file_menu.popup(None, None, None, event.button, event.time)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def _on_key_press_event(self, widget, event):
|
def _on_key_press_event(self, widget, event):
|
||||||
# Menu key
|
# Menu key
|
||||||
if gtk.gdk.keyval_name(event.keyval) != "Menu":
|
if gtk.gdk.keyval_name(event.keyval) != "Menu":
|
||||||
return
|
return
|
||||||
|
|
||||||
if not self.get_selected_files():
|
if not self.get_selected_files():
|
||||||
return
|
return
|
||||||
|
|
||||||
self.file_menu.popup(None, None, None, 3, event.time)
|
self.file_menu.popup(None, None, None, 3, event.time)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue