Sergey M․
7 years ago
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
2 changed files with
22 additions and
3 deletions
-
test/test_utils.py
-
youtube_dl/utils.py
|
|
@ -57,6 +57,7 @@ from youtube_dl.utils import ( |
|
|
|
read_batch_urls, |
|
|
|
sanitize_filename, |
|
|
|
sanitize_path, |
|
|
|
sanitize_url, |
|
|
|
expand_path, |
|
|
|
prepend_extension, |
|
|
|
replace_extension, |
|
|
@ -219,6 +220,12 @@ class TestUtil(unittest.TestCase): |
|
|
|
self.assertEqual(sanitize_path('./abc'), 'abc') |
|
|
|
self.assertEqual(sanitize_path('./../abc'), '..\\abc') |
|
|
|
|
|
|
|
def test_sanitize_url(self): |
|
|
|
self.assertEqual(sanitize_url('//foo.bar'), 'http://foo.bar') |
|
|
|
self.assertEqual(sanitize_url('httpss://foo.bar'), 'https://foo.bar') |
|
|
|
self.assertEqual(sanitize_url('rmtps://foo.bar'), 'rtmps://foo.bar') |
|
|
|
self.assertEqual(sanitize_url('https://foo.bar'), 'https://foo.bar') |
|
|
|
|
|
|
|
def test_expand_path(self): |
|
|
|
def env(var): |
|
|
|
return '%{0}%'.format(var) if sys.platform == 'win32' else '${0}'.format(var) |
|
|
|
|
|
@ -538,10 +538,22 @@ def sanitize_path(s): |
|
|
|
return os.path.join(*sanitized_path) |
|
|
|
|
|
|
|
|
|
|
|
# Prepend protocol-less URLs with `http:` scheme in order to mitigate the number of |
|
|
|
# unwanted failures due to missing protocol |
|
|
|
def sanitize_url(url): |
|
|
|
return 'http:%s' % url if url.startswith('//') else url |
|
|
|
# Prepend protocol-less URLs with `http:` scheme in order to mitigate |
|
|
|
# the number of unwanted failures due to missing protocol |
|
|
|
if url.startswith('//'): |
|
|
|
return 'http:%s' % url |
|
|
|
# Fix some common typos seen so far |
|
|
|
COMMON_TYPOS = ( |
|
|
|
# https://github.com/rg3/youtube-dl/issues/15649 |
|
|
|
(r'^httpss://', r'https://'), |
|
|
|
# https://bx1.be/lives/direct-tv/ |
|
|
|
(r'^rmtp([es]?)://', r'rtmp\1://'), |
|
|
|
) |
|
|
|
for mistake, fixup in COMMON_TYPOS: |
|
|
|
if re.match(mistake, url): |
|
|
|
return re.sub(mistake, fixup, url) |
|
|
|
return url |
|
|
|
|
|
|
|
|
|
|
|
def sanitized_Request(url, *args, **kwargs): |
|
|
|