summaryrefslogtreecommitdiffstats
path: root/pyload/plugins/hoster/Ftp.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/plugins/hoster/Ftp.py')
-rw-r--r--pyload/plugins/hoster/Ftp.py30
1 files changed, 16 insertions, 14 deletions
diff --git a/pyload/plugins/hoster/Ftp.py b/pyload/plugins/hoster/Ftp.py
index f092bd0a4..a846d2b5f 100644
--- a/pyload/plugins/hoster/Ftp.py
+++ b/pyload/plugins/hoster/Ftp.py
@@ -10,22 +10,24 @@ from pyload.plugins.base.Hoster import Hoster
class Ftp(Hoster):
- __name__ = "Ftp"
- __type__ = "hoster"
- __version__ = "0.42"
+ __name__ = "Ftp"
+ __type__ = "hoster"
+ __version__ = "0.43"
- __pattern__ = r'(ftps?|sftp)://(.*?:.*?@)?.*?/.*' #: ftp://user:password@ftp.server.org/path/to/file
+ __pattern__ = r'(?:ftps?|sftp)://([\w.-]+(:[\w.-]+)?@)?[\w.-]+(:\d+)?/.+'
__description__ = """Download from ftp directory"""
- __authors__ = [("jeix", "jeix@hasnomail.com"),
- ("mkaay", "mkaay@mkaay.de"),
- ("zoidberg", "zoidberg@mujmail.cz")]
+ __license__ = "GPLv3"
+ __authors__ = [("jeix", "jeix@hasnomail.com"),
+ ("mkaay", "mkaay@mkaay.de"),
+ ("zoidberg", "zoidberg@mujmail.cz")]
def setup(self):
self.chunkLimit = -1
self.resumeDownload = True
+
def process(self, pyfile):
parsed_url = urlparse(pyfile.url)
netloc = parsed_url.netloc
@@ -43,7 +45,7 @@ class Ftp(Hoster):
self.logDebug("Logging on to %s" % netloc)
self.req.addAuth(self.account.accounts[netloc]['password'])
else:
- for pwd in pyfile.package().password.splitlines():
+ for pwd in self.getPassword().splitlines():
if ":" in pwd:
self.req.addAuth(pwd.strip())
break
@@ -51,14 +53,14 @@ class Ftp(Hoster):
self.req.http.c.setopt(pycurl.NOBODY, 1)
try:
- response = self.load(pyfile.url)
+ res = self.load(pyfile.url)
except pycurl.error, e:
- self.fail("Error %d: %s" % e.args)
+ self.fail(_("Error %d: %s") % e.args)
self.req.http.c.setopt(pycurl.NOBODY, 0)
self.logDebug(self.req.http.header)
- m = re.search(r"Content-Length:\s*(\d+)", response)
+ m = re.search(r"Content-Length:\s*(\d+)", res)
if m:
pyfile.size = int(m.group(1))
self.download(pyfile.url)
@@ -69,9 +71,9 @@ class Ftp(Hoster):
pkgname = "/".join(pyfile.package().name, urlparse(pyfile.url).path.rpartition('/')[2])
pyfile.url += '/'
self.req.http.c.setopt(48, 1) # CURLOPT_DIRLISTONLY
- response = self.load(pyfile.url, decode=False)
- links = [pyfile.url + quote(x) for x in response.splitlines()]
+ res = self.load(pyfile.url, decode=False)
+ links = [pyfile.url + quote(x) for x in res.splitlines()]
self.logDebug("LINKS", links)
self.core.api.addPackage(pkgname, links)
else:
- self.fail("Unexpected server response")
+ self.fail(_("Unexpected server response"))