Merge pull request #2514 from rask004/fix-2487

Fix pelican-import error regarding wp-attach and Unicode
This commit is contained in:
Justin Mayer 2019-03-07 21:13:37 +01:00 committed by GitHub
commit d9e98a5a39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -13,7 +13,7 @@ from codecs import open
from collections import defaultdict from collections import defaultdict
from six.moves.urllib.error import URLError from six.moves.urllib.error import URLError
from six.moves.urllib.parse import urlparse from six.moves.urllib.parse import quote, urlparse, urlsplit, urlunsplit
from six.moves.urllib.request import urlretrieve from six.moves.urllib.request import urlretrieve
# because logging.setLoggerClass has to be called before logging.getLogger # because logging.setLoggerClass has to be called before logging.getLogger
@ -728,6 +728,12 @@ def download_attachments(output_path, urls):
if sys.platform != 'win32' or ':' not in item: if sys.platform != 'win32' or ':' not in item:
localpath = os.path.join(localpath, item) localpath = os.path.join(localpath, item)
full_path = os.path.join(output_path, localpath) full_path = os.path.join(output_path, localpath)
# Generate percent-encoded URL
scheme, netloc, path, query, fragment = urlsplit(url)
path = quote(path)
url = urlunsplit((scheme, netloc, path, query, fragment))
if not os.path.exists(full_path): if not os.path.exists(full_path):
os.makedirs(full_path) os.makedirs(full_path)
print('downloading {}'.format(filename)) print('downloading {}'.format(filename))