projects
/
youtube-dl
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d79febc
)
[compat] Add compat_urllib_parse_unquote_plus
author
Sergey M․
<dstftw@gmail.com>
Fri, 17 Jul 2015 17:28:34 +0000
(23:28 +0600)
committer
Sergey M․
<dstftw@gmail.com>
Fri, 17 Jul 2015 17:28:34 +0000
(23:28 +0600)
youtube_dl/compat.py
patch
|
blob
|
history
diff --git
a/youtube_dl/compat.py
b/youtube_dl/compat.py
index 54ccf1d28773dcc975ed43e8dd3704da77e4d4b4..a3a2aef53ee02a910d2357431f1c0858a5bfc15f 100644
(file)
--- a/
youtube_dl/compat.py
+++ b/
youtube_dl/compat.py
@@
-77,6
+77,7
@@
except ImportError:
try:
from urllib.parse import unquote_to_bytes as compat_urllib_parse_unquote_to_bytes
from urllib.parse import unquote as compat_urllib_parse_unquote
try:
from urllib.parse import unquote_to_bytes as compat_urllib_parse_unquote_to_bytes
from urllib.parse import unquote as compat_urllib_parse_unquote
+ from urllib.parse import unquote_plus as compat_urllib_parse_unquote_plus
except ImportError: # Python 2
# HACK: The following are the correct unquote_to_bytes and unquote
# implementations from cpython 3.4.3's stdlib. Python 2's version
except ImportError: # Python 2
# HACK: The following are the correct unquote_to_bytes and unquote
# implementations from cpython 3.4.3's stdlib. Python 2's version
@@
-131,6
+132,15
@@
except ImportError: # Python 2
append(bits[i + 1])
return ''.join(res)
append(bits[i + 1])
return ''.join(res)
+ def compat_urllib_parse_unquote_plus(string, encoding='utf-8', errors='replace'):
+ """Like unquote(), but also replace plus signs by spaces, as required for
+ unquoting HTML form values.
+
+ unquote_plus('%7e/abc+def') -> '~/abc def'
+ """
+ string = string.replace('+', ' ')
+ return compat_urllib_parse_unquote(string, encoding, errors)
+
try:
compat_str = unicode # Python 2
except NameError:
try:
compat_str = unicode # Python 2
except NameError:
@@
-441,6
+451,7
@@
__all__ = [
'compat_urllib_error',
'compat_urllib_parse',
'compat_urllib_parse_unquote',
'compat_urllib_error',
'compat_urllib_parse',
'compat_urllib_parse_unquote',
+ 'compat_urllib_parse_unquote_plus',
'compat_urllib_parse_unquote_to_bytes',
'compat_urllib_parse_urlparse',
'compat_urllib_request',
'compat_urllib_parse_unquote_to_bytes',
'compat_urllib_parse_urlparse',
'compat_urllib_request',