diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-02-12 14:00:41 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2019-02-24 10:37:24 +0100 |
commit | 80eb185a9b222f50f2a23586147f93339c7779d8 (patch) | |
tree | e2c02231042a98ca2edd1b2c3aab694e3fb17252 | |
parent | 640db472fd098c1540448ccad1a13a9a4794d387 (diff) | |
download | urlgrabber-80eb185a9b222f50f2a23586147f93339c7779d8.tar.gz |
Add a wrapper function around urlunquote() that decodes automatically
-rw-r--r-- | urlgrabber/grabber.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/urlgrabber/grabber.py b/urlgrabber/grabber.py index 0fa9ce8..53f9f87 100644 --- a/urlgrabber/grabber.py +++ b/urlgrabber/grabber.py @@ -569,6 +569,11 @@ def _bytes_repr(s): else: return repr(s)[2:-1] +def _urlunquote_convert(s): + if not isinstance(s, text_type): + s = s.decode('utf8') + return urlunquote(s) + ######################################################################## # MODULE INITIALIZATION ######################################################################## @@ -1170,7 +1175,7 @@ class URLGrabber(object): (scheme, host, path, parm, query, frag) = parts opts.find_proxy(url, scheme) if filename is None: - filename = os.path.basename( urlunquote(path) ) + filename = os.path.basename(_urlunquote_convert(path)) if not filename: # This is better than nothing. filename = 'index.html' @@ -1331,7 +1336,7 @@ class PyCurlFileObject(object): if self.opts.progress_obj: size = self.size + self._reget_length self.opts.progress_obj.start(self._prog_reportname, - urlunquote(self.url), + _urlunquote_convert(self.url), self._prog_basename, size=size, text=self.opts.text) @@ -1553,7 +1558,7 @@ class PyCurlFileObject(object): code = self.http_code errcode = e.args[0] - errurl = urlunquote(self.url) + errurl = _urlunquote_convert(self.url) if self._error[0]: errcode = self._error[0] @@ -1645,7 +1650,7 @@ class PyCurlFileObject(object): if self._error[1]: msg = self._error[1] err = URLGrabError(14, msg) - err.url = urlunquote(self.url) + err.url = _urlunquote_convert(self.url) raise err def _do_open(self): |