Blob Blame History Raw
From d40dfcd53c2439de121ddaff476e66194dc2c738 Mon Sep 17 00:00:00 2001
From: Andrew Resch <andrewresch@gmail.com>
Date: Mon, 23 Feb 2015 08:31:00 +0000
Subject: Fix for Twisted 15.0 URI class rename

---
diff --git a/deluge/httpdownloader.py b/deluge/httpdownloader.py
index b146477..14dcdc3 100644
--- a/deluge/httpdownloader.py
+++ b/deluge/httpdownloader.py
@@ -146,7 +146,7 @@ def sanitise_filename(filename):
         log.warning("Potentially malicious server: trying to write to file '%s'" % filename)
         # Only use the basename
         filename = os.path.basename(filename)
-        
+
     filename = filename.strip()
     if filename.startswith(".") or ";" in filename or "|" in filename:
         # Dodgy server, log it
@@ -192,17 +192,22 @@ def download_file(url, filename, callback=None, headers=None, force_filename=Fal
             headers = {}
         headers["accept-encoding"] = "deflate, gzip, x-gzip"
 
-    # In twisted 13.1.0 the _parse() function was replaced by the _URI class 
-    if hasattr(client, '_parse'):
+    # In Twisted 13.1.0 _parse() function replaced by _URI class.
+    # In Twisted 15.0.0 _URI class renamed to URI.
+    if hasattr(client, "_parse"):
         scheme, host, port, path = client._parse(url)
     else:
-        from twisted.web.client import _URI
-        uri = _URI.fromBytes(url)
+        try:
+            from twisted.web.client import _URI as URI
+        except ImportError:
+            from twisted.web.client import URI
+
+        uri = URI.fromBytes(url)
         scheme = uri.scheme
         host = uri.host
         port = uri.port
         path = uri.path
-        
+
     factory = HTTPDownloader(url, filename, callback, headers, force_filename, allow_compression)
     if scheme == "https":
         from twisted.internet import ssl
--
cgit v0.9.2