diff options
author | Sergey M․ <[email protected]> | 2015-03-08 22:08:48 +0600 |
---|---|---|
committer | Sergey M․ <[email protected]> | 2015-03-08 22:08:48 +0600 |
commit | f18ef2d14463a13d80e967d1b18ece6a076f60fa (patch) | |
tree | 0516a7bee703a243dc33fea502c4dbf7c8ca43b1 | |
parent | 1bb5c511a551ba7c5d3179d2d3a124f0977e74b4 (diff) | |
download | youtube-dl-f18ef2d14463a13d80e967d1b18ece6a076f60fa.tar.gz youtube-dl-f18ef2d14463a13d80e967d1b18ece6a076f60fa.zip |
[utils] Disallow trailing dot in sanitize_path for a path part
-rw-r--r-- | test/test_utils.py | 11 | ||||
-rw-r--r-- | youtube_dl/utils.py | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/test/test_utils.py b/test/test_utils.py index 5ebb8d498..28bda654e 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -152,6 +152,17 @@ class TestUtil(unittest.TestCase): self.assertEqual(sanitize_path('\\\\?\\C:\\ab?c\\de:f'), '\\\\?\\C:\\ab#c\\de#f') self.assertEqual(sanitize_path('\\\\?\\C:\\abc'), '\\\\?\\C:\\abc') + self.assertEqual( + sanitize_path('youtube/%(uploader)s/%(autonumber)s-%(title)s-%(upload_date)s.%(ext)s'), + 'youtube\\%(uploader)s\\%(autonumber)s-%(title)s-%(upload_date)s.%(ext)s') + + self.assertEqual( + sanitize_path('youtube/TheWreckingYard ./00001-Not bad, Especially for Free! (1987 Yamaha 700)-20141116.mp4.part'), + 'youtube\\TheWreckingYard #\\00001-Not bad, Especially for Free! (1987 Yamaha 700)-20141116.mp4.part') + self.assertEqual(sanitize_path('abc/def...'), 'abc\\def..#') + self.assertEqual(sanitize_path('abc.../def'), 'abc..#\\def') + self.assertEqual(sanitize_path('abc.../def...'), 'abc..#\\def..#') + def test_ordered_set(self): self.assertEqual(orderedSet([1, 1, 2, 3, 4, 4, 5, 6, 7, 3, 5]), [1, 2, 3, 4, 5, 6, 7]) self.assertEqual(orderedSet([]), []) diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index e511232ca..d5597d514 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -319,7 +319,7 @@ def sanitize_path(s): if unc_or_drive: norm_path.pop(0) sanitized_path = [ - re.sub('[/<>:"\\|\\\\?\\*]', '#', path_part) + re.sub('(?:[/<>:"\\|\\\\?\\*]|\.$)', '#', path_part) for path_part in norm_path] if unc_or_drive: sanitized_path.insert(0, unc_or_drive + os.path.sep) |