Author: andar
Revision: 4942
Log:
Add the files_tree property to TorrentInfo
Diff:
Modified: trunk/deluge/ui/common.py
===================================================================
--- trunk/deluge/ui/common.py 2009-03-30 22:07:47 UTC (rev 4941)
+++ trunk/deluge/ui/common.py 2009-03-30 22:15:13 UTC (rev 4942)
@@ -48,30 +48,31 @@
self.__m_info_hash =
sha(bencode.bencode(self.__m_metadata["info"])).hexdigest()
- """# Get list of files from torrent info
+ # Get list of files from torrent info
paths = {}
- if metadata["info"].has_key("files"):
+ if self.__m_metadata["info"].has_key("files"):
prefix = ""
- if len(metadata["info"]["files"]) > 1:
- prefix = metadata["info"]["name"]
-
- for f in metadata["info"]["files"]:
+ if len(self.__m_metadata["info"]["files"]) > 1:
+ prefix = self.__m_metadata["info"]["name"]
+
+ for index, f in enumerate(self.__m_metadata["info"]["files"]):
path = os.path.join(prefix, *f["path"])
+ f["index"] = index
paths[path] = f
-
+
def walk(path, item):
if type(item) is dict:
return item
- return [paths[path]['length'], True]
-
+ return [paths[path]['index'], paths[path]['length'], True]
+
file_tree = FileTree(paths)
file_tree.walk(walk)
- self.__m_files = file_tree.get_tree()
+ self.__m_files_tree = file_tree.get_tree()
else:
- self.__m_files = {
- metadata["info"]["name"]: (metadata["info"]["length"], True)
- }"""
-
+ self.__m_files_tree = {
+ self.__m_metadata["info"]["name"]:
(self.__m_metadata["info"]["length"], True)
+ }
+
self.__m_files = []
if self.__m_metadata["info"].has_key("files"):
prefix = ""
@@ -104,6 +105,10 @@
return self.__m_files
@property
+ def files_tree(self):
+ return self.__m_files_tree
+
+ @property
def metadata(self):
return self.__m_metadata
@@ -120,7 +125,7 @@
parent[directory] = {}
parent = parent[directory]
return parent, path
-
+
for path in paths:
if path[-1] == "/":
path = path[:-1]
@@ -129,7 +134,7 @@
else:
parent, path = get_parent(path)
parent[path] = []
-
+
def get_tree(self):
def to_tuple(path, item):
if type(item) is dict:
@@ -137,7 +142,7 @@
return tuple(item)
self.walk(to_tuple)
return self.tree
-
+
def walk(self, callback):
def walk(directory, parent_path):
for path in directory.keys():
@@ -150,7 +155,7 @@
directory[path] = callback(full_path, directory[path]) or \
directory[path]
walk(self.tree, "")
-
+
def __str__(self):
lines = []
def write(path, item):
@@ -183,12 +188,12 @@
for f in metadata["info"]["files"]:
path = os.path.join(prefix, *f["path"])
paths[path] = f
-
+
def walk(path, item):
if type(item) is dict:
return item
return [paths[path]['length'], True]
-
+
file_tree = FileTree(paths)
file_tree.walk(walk)
files = file_tree.get_tree()
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"deluge-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/deluge-commit?hl=en
-~----------~----~----~----~------~----~------~--~---