summaryrefslogtreecommitdiffstats
path: root/module/network/HTTPDownload.py
diff options
context:
space:
mode:
Diffstat (limited to 'module/network/HTTPDownload.py')
-rw-r--r--module/network/HTTPDownload.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/module/network/HTTPDownload.py b/module/network/HTTPDownload.py
index 295c8f465..b20f565ea 100644
--- a/module/network/HTTPDownload.py
+++ b/module/network/HTTPDownload.py
@@ -18,6 +18,7 @@
"""
from os import remove, fsync
+from os.path import dirname, join
from time import sleep, time
from shutil import move
@@ -31,7 +32,7 @@ from module.plugins.Plugin import Abort
class HTTPDownload():
""" loads a url http + ftp """
def __init__(self, url, filename, get={}, post={}, referer=None, cj=None, bucket=None,
- interface=None, proxies={}, progressNotify=None):
+ interface=None, proxies={}, progressNotify=None, disposition=True):
self.url = url
self.filename = filename #complete file destination, not only name
self.get = get
@@ -41,10 +42,12 @@ class HTTPDownload():
self.bucket = bucket
self.interface = interface
self.proxies = proxies
+ self.disposition = disposition
# all arguments
self.abort = False
self.size = 0
+ self.nameDisposition = None #will be parsed from content disposition
self.chunks = []
@@ -106,10 +109,15 @@ class HTTPDownload():
remove(fname) #remove chunk
fo.close()
+ if self.nameDisposition and self.disposition:
+ self.filename = join(dirname(self.filename), self.nameDisposition)
+
move(init, self.filename)
self.info.remove() #remove info file
def download(self, chunks=1, resume=False):
+ """ returns new filename or None """
+
chunks = max(1, chunks)
resume = self.info.resume and resume
self.chunks = []
@@ -119,6 +127,9 @@ class HTTPDownload():
finally:
self.close()
+ if self.nameDisposition and self.disposition: return self.nameDisposition
+ return None
+
def _download(self, chunks, resume):
if not resume:
self.info.clear()