diff --git a/Tribler/Core/Modules/restapi/downloads_endpoint.py b/Tribler/Core/Modules/restapi/downloads_endpoint.py index 0c6f1c824c8..1a9e47a6ded 100644 --- a/Tribler/Core/Modules/restapi/downloads_endpoint.py +++ b/Tribler/Core/Modules/restapi/downloads_endpoint.py @@ -1,6 +1,8 @@ import os import logging +from urllib import unquote_plus + from twisted.web import http, resource from twisted.web.server import NOT_DONE_YET from Tribler.Core.DownloadConfig import DownloadStartupConfig @@ -290,7 +292,7 @@ def on_error(error): request.finish() download_deferred = self.session.start_download_from_uri( - unicode(parameters['uri'][0], 'utf-8'), download_config) + unquote_plus(unicode(parameters['uri'][0], 'utf-8')), download_config) download_deferred.addCallback(download_added) download_deferred.addErrback(on_error) diff --git a/Tribler/Core/Modules/restapi/torrentinfo_endpoint.py b/Tribler/Core/Modules/restapi/torrentinfo_endpoint.py index 91fc9d207ca..622c7403753 100644 --- a/Tribler/Core/Modules/restapi/torrentinfo_endpoint.py +++ b/Tribler/Core/Modules/restapi/torrentinfo_endpoint.py @@ -92,7 +92,7 @@ def on_lookup_error(failure): uri = unicode(request.args['uri'][0], 'utf-8') if uri.startswith('file:'): try: - filename = url2pathname(uri[5:]) + filename = url2pathname(uri[5:].replace("+", " ")) metainfo_deferred.callback(bdecode(fix_torrent(filename))) except TypeError: request.setResponseCode(http.INTERNAL_SERVER_ERROR) diff --git a/TriblerGUI/tribler_window.py b/TriblerGUI/tribler_window.py index 66acd680cb1..90bbe060c9e 100644 --- a/TriblerGUI/tribler_window.py +++ b/TriblerGUI/tribler_window.py @@ -540,7 +540,7 @@ def on_add_torrent_browse_dir(self): def on_confirm_add_directory_dialog(self, action): if action == 0: for torrent_file in self.selected_torrent_files: - escaped_uri = quote_plus((u"file:%s" % torrent_file).encode('utf-8')) + escaped_uri = u"file:%s" % quote_plus((torrent_file).encode('utf-8')) self.perform_start_download_request(escaped_uri, get_gui_setting(self.gui_settings, "default_anonymity_enabled", True, is_bool=True),