Fix filename sanitization

Bug from 752cda3880
This commit is contained in:
pukkandan 2021-06-06 19:30:21 +05:30
parent eb0f9d6838
commit 87ea7dfc04
No known key found for this signature in database
GPG key ID: 0F00D95A001F4698
2 changed files with 5 additions and 1 deletions

View file

@ -655,6 +655,7 @@ class TestYoutubeDL(unittest.TestCase):
'height': 1080, 'height': 1080,
'title1': '$PATH', 'title1': '$PATH',
'title2': '%PATH%', 'title2': '%PATH%',
'title3': 'foo/bar\\test',
'timestamp': 1618488000, 'timestamp': 1618488000,
'duration': 100000, 'duration': 100000,
'playlist_index': 1, 'playlist_index': 1,
@ -735,6 +736,9 @@ class TestYoutubeDL(unittest.TestCase):
self.assertEqual(fname('Hello %(title1)s'), 'Hello $PATH') self.assertEqual(fname('Hello %(title1)s'), 'Hello $PATH')
self.assertEqual(fname('Hello %(title2)s'), 'Hello %PATH%') self.assertEqual(fname('Hello %(title2)s'), 'Hello %PATH%')
self.assertEqual(fname('%(title3)s'), 'foo_bar_test')
self.assertEqual(fname('%(formats.0)s'), "{'id' - 'id1'}")
self.assertEqual(fname('%(id)r %(height)r'), "'1234' 1080") self.assertEqual(fname('%(id)r %(height)r'), "'1234' 1080")
self.assertEqual(fname('%(formats.0)r'), "{'id' - 'id1'}") self.assertEqual(fname('%(formats.0)r'), "{'id' - 'id1'}")

View file

@ -915,7 +915,7 @@ class YoutubeDL(object):
# If value is an object, sanitize might convert it to a string # If value is an object, sanitize might convert it to a string
# So we convert it to repr first # So we convert it to repr first
value, fmt = repr(value), '%ss' % fmt[:-1] value, fmt = repr(value), '%ss' % fmt[:-1]
value = sanitize(key, value) value = sanitize(key, value)
tmpl_dict[key] = value tmpl_dict[key] = value
return '%({key}){fmt}'.format(key=key, fmt=fmt) return '%({key}){fmt}'.format(key=key, fmt=fmt)