Fix...
Content-type: text/plain

Author: andar

Revision: 5362

Log:
        Torrent creation fixes in regards to web seeds
Fix adding torrent to session after creation by setting the proper download 
location

Diff:
Modified: trunk/deluge/core/core.py
===================================================================
--- trunk/deluge/core/core.py   2009-06-08 21:26:17 UTC (rev 5361)
+++ trunk/deluge/core/core.py   2009-06-08 21:57:02 UTC (rev 5362)
@@ -616,7 +616,7 @@
 
     @export
     def create_torrent(self, path, tracker, piece_length, comment, target,
-                        url_list, private, created_by, httpseeds, trackers, 
add_to_session):
+                        webseeds, private, created_by, trackers, 
add_to_session):
 
         log.debug("creating torrent..")
         threading.Thread(target=_create_torrent_thread,
@@ -626,15 +626,14 @@
                 piece_length,
                 comment,
                 target,
-                url_list,
+                webseeds,
                 private,
                 created_by,
-                httpseeds,
                 trackers,
                 add_to_session)).start()
 
     def _create_torrent_thread(self, path, tracker, piece_length, comment, 
target,
-                    url_list, private, created_by, httpseeds, trackers, 
add_to_session):
+                    webseeds, private, created_by, trackers, add_to_session):
         import deluge.metafile
         deluge.metafile.make_meta_file(
             path,
@@ -642,10 +641,9 @@
             piece_length,
             comment=comment,
             target=target,
-            url_list=url_list,
+            webseeds=webseeds,
             private=private,
             created_by=created_by,
-            httpseeds=httpseeds,
             trackers=trackers)
         log.debug("torrent created!")
         if add_to_session:

Modified: trunk/deluge/metafile.py
===================================================================
--- trunk/deluge/metafile.py    2009-06-08 21:26:17 UTC (rev 5361)
+++ trunk/deluge/metafile.py    2009-06-08 21:57:02 UTC (rev 5362)
@@ -57,8 +57,8 @@
 
 def make_meta_file(path, url, piece_length, progress=dummy,
                    title=None, comment=None, safe=None, content_type=None,
-                   target=None, url_list=None, name=None, private=False,
-                   created_by=None, httpseeds=None, trackers=None):
+                   target=None, webseeds=None, name=None, private=False,
+                   created_by=None, trackers=None):
     data = {'creation date': int(gmtime())}
     if url:
         data['announce'] = url.strip()
@@ -77,20 +77,34 @@
 
     data['info'] = info
     if title:
-        data['title'] = title
+        data['title'] = title.encode("utf8")
     if comment:
-        data['comment'] = comment
+        data['comment'] = comment.encode("utf8")
     if safe:
-        data['safe'] = safe
+        data['safe'] = safe.encode("utf8")
+
+    httpseeds = []
+    url_list = []
+
+    if webseeds:
+        for webseed in webseeds:
+            if webseed.endswith(".php"):
+                httpseeds.append(webseed)
+            else:
+                url_list.append(webseed)
+
     if url_list:
         data['url-list'] = url_list
-    if created_by:
-        data['created by'] = created_by
     if httpseeds:
         data['httpseeds'] = httpseeds
+    if created_by:
+        data['created by'] = created_by.encode("utf8")
+
     if trackers:
         data['announce-list'] = trackers
 
+    data["encoding"] = "UTF-8"
+
     h.write(bencode(data))
     h.close()
 

Modified: trunk/deluge/ui/gtkui/createtorrentdialog.py
===================================================================
--- trunk/deluge/ui/gtkui/createtorrentdialog.py        2009-06-08 21:26:17 UTC 
(rev 5361)
+++ trunk/deluge/ui/gtkui/createtorrentdialog.py        2009-06-08 21:57:02 UTC 
(rev 5362)
@@ -258,11 +258,22 @@
         # Get the path
         path = self.files_treestore[0][0]
         # Get a list of trackers
-        trackers = [t[1] for t in self.trackers_liststore]
-        if len(trackers) == 0:
+        trackers = []
+        if not len(self.trackers_liststore):
             tracker = None
         else:
-            tracker = trackers[0]
+            # Create a list of lists [[tier0, ...], [tier1, ...], ...]
+            for tier, tracker in self.trackers_liststore:
+                try:
+                    tier_list = trackers[tier]
+                except IndexError:
+                    trackers.insert(tier, [])
+
+                trackers[tier].append(tracker)
+
+            # Get the first tracker in the first tier
+            tracker = trackers[0][0]
+
         # Get a list of webseeds
         webseeds = []
         b = self.glade.get_widget("textview_webseeds").get_buffer()
@@ -288,10 +299,9 @@
                 piece_length,
                 comment,
                 result,
-                None,
+                webseeds,
                 private,
                 author,
-                webseeds,
                 trackers,
                 add_to_session)
 
@@ -309,10 +319,9 @@
                     self._on_create_torrent_progress,
                     comment,
                     result,
-                    trackers,
+                    webseeds,
                     private,
                     author,
-                    webseeds,
                     trackers,
                     add_to_session)).start()
 
@@ -320,7 +329,7 @@
         self.dialog.destroy()
 
     def create_torrent(self, path, tracker, piece_length, progress, comment, 
target,
-                        url_list, private, created_by, httpseeds, trackers, 
add_to_session):
+                        webseeds, private, created_by, trackers, 
add_to_session):
         import deluge.metafile
         deluge.metafile.make_meta_file(
             path,
@@ -329,17 +338,16 @@
             progress=progress,
             comment=comment,
             target=target,
-            url_list=url_list,
+            webseeds=webseeds,
             private=private,
             created_by=created_by,
-            httpseeds=httpseeds,
             trackers=trackers)
         self.glade.get_widget("progress_dialog").hide_all()
         if add_to_session:
             client.core.add_torrent_file(
                 os.path.split(target)[-1],
                 base64.encodestring(open(target).read()),
-                None)
+                {"download_location": os.path.split(path)[0]})
 
     def _on_create_torrent_progress(self, value, num_pieces):
         percent = float(value)/float(num_pieces)



--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to