From d40dfcd53c2439de121ddaff476e66194dc2c738 Mon Sep 17 00:00:00 2001 From: Andrew Resch 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