Module: deluge Branch: master Commit: 62f6683730f2c3c5e15b6132c3d79afaba731e6e
Author: Nick Lanham <[email protected]> Date: Wed Feb 23 16:12:49 2011 +0100 support urls from add dialog --- deluge/ui/console/modes/add_util.py | 39 +++++++++++++++++++------------ deluge/ui/console/modes/alltorrents.py | 2 + 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/deluge/ui/console/modes/add_util.py b/deluge/ui/console/modes/add_util.py index 9349cef..02c084d 100644 --- a/deluge/ui/console/modes/add_util.py +++ b/deluge/ui/console/modes/add_util.py @@ -40,6 +40,7 @@ from twisted.internet import defer from deluge.ui.client import client import deluge.component as component +import deluge.common from optparse import make_option import os,base64,glob @@ -57,7 +58,12 @@ def add_torrent(t_file, options, success_cb, fail_cb, ress): t_options["download_location"] = os.path.expanduser(options["path"]) t_options["add_paused"] = options["add_paused"] - files = glob.glob(t_file) + is_url = (not (options["path_type"]==1)) and (deluge.common.is_url(t_file) or options["path_type"]==2) + + if is_url: + files = [t_file] + else: + files = glob.glob(t_file) num_files = len(files) ress["total"] = num_files @@ -65,21 +71,24 @@ def add_torrent(t_file, options, success_cb, fail_cb, ress): fail_cb("Doesn't exist",t_file,ress) for f in files: - if not os.path.exists(f): - fail_cb("Doesn't exist",f,ress) - continue - if not os.path.isfile(f): - fail_cb("Is a directory",f,ress) - continue + if is_url: + client.core.add_torrent_url(f, t_options).addCallback(success_cb,f,ress).addErrback(fail_cb,f,ress) + else: + if not os.path.exists(f): + fail_cb("Doesn't exist",f,ress) + continue + if not os.path.isfile(f): + fail_cb("Is a directory",f,ress) + continue - try: - add_get_info(f) - except Exception as e: - fail_cb(e.message,f,ress) - continue + try: + add_get_info(f) + except Exception as e: + fail_cb(e.message,f,ress) + continue - filename = os.path.split(f)[-1] - filedump = base64.encodestring(open(f).read()) + filename = os.path.split(f)[-1] + filedump = base64.encodestring(open(f).read()) - client.core.add_torrent_file(filename, filedump, t_options).addCallback(success_cb,f,ress).addErrback(fail_cb,f,ress) + client.core.add_torrent_file(filename, filedump, t_options).addCallback(success_cb,f,ress).addErrback(fail_cb,f,ress) diff --git a/deluge/ui/console/modes/alltorrents.py b/deluge/ui/console/modes/alltorrents.py index accd2d1..5343383 100644 --- a/deluge/ui/console/modes/alltorrents.py +++ b/deluge/ui/console/modes/alltorrents.py @@ -463,6 +463,8 @@ class AllTorrents(BaseMode): self.popup.add_text_input("Enter path to torrent file:","file") self.popup.add_text_input("Enter save path:","path",dl) self.popup.add_select_input("Add Paused:","add_paused",["Yes","No"],[True,False],ap) + self.popup.add_spaces(1) + self.popup.add_select_input("Path is:","path_type",["Auto","File","URL"],[0,1,2],0) def report_message(self,title,message): self.messages.append((title,message)) -- 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.
