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