[kupfer] plugin.urlactions: Adjust how we get name from response Header



commit 567b40abdb4ab2e46c511b9d8d5182946940a795
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date:   Sat Oct 3 16:31:22 2009 +0200

    plugin.urlactions: Adjust how we get name from response Header
    
    We need to parse the Content-Disposition header if it contains
    something like 'attachment; filename=archive.zip'.

 kupfer/plugin/urlactions.py |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/kupfer/plugin/urlactions.py b/kupfer/plugin/urlactions.py
index 58564d3..5cedccc 100644
--- a/kupfer/plugin/urlactions.py
+++ b/kupfer/plugin/urlactions.py
@@ -20,10 +20,18 @@ class DownloadTask (task.StepTask):
 		super(DownloadTask, self).__init__()
 		self.response = urllib2.urlopen(uri)
 
-		def make_url_name(url):
+		def url_name(url):
 			return os.path.basename(url.rstrip("/"))
-		header_basename = self.response.headers.get('Content-Disposition')
-		destname = header_basename or make_url_name(self.response.url)
+		def header_name(headers):
+			content_disp = headers.get("Content-Disposition", "")
+			for part in content_disp.split(";"):
+				if part.strip().lower().startswith("filename="):
+					return part.split("=", 1)[-1]
+			return content_disp
+
+		destname = (header_name(self.response.headers) or
+					url_name(self.response.url))
+
 		if tempfile:
 			(self.destfile, self.destpath) = utils.get_safe_tempfile()
 		else:



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]