Sfoglia il codice sorgente

[utils] Improve colon handling (Fixes #4683)

Philipp Hagemeister 10 anni fa
parent
commit
2aeb06d6dc
2 ha cambiato i file con 6 aggiunte e 0 eliminazioni
  1. 4 0
      test/test_utils.py
  2. 2 0
      youtube_dl/utils.py

+ 4 - 0
test/test_utils.py

@@ -79,6 +79,10 @@ class TestUtil(unittest.TestCase):
         tests = '\u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430'
         tests = '\u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430'
         self.assertEqual(sanitize_filename(tests), tests)
         self.assertEqual(sanitize_filename(tests), tests)
 
 
+        self.assertEqual(
+            sanitize_filename('New World record at 0:12:34'),
+            'New World record at 0_12_34')
+
         forbidden = '"\0\\/'
         forbidden = '"\0\\/'
         for fc in forbidden:
         for fc in forbidden:
             for fbc in forbidden:
             for fbc in forbidden:

+ 2 - 0
youtube_dl/utils.py

@@ -287,6 +287,8 @@ def sanitize_filename(s, restricted=False, is_id=False):
             return '_'
             return '_'
         return char
         return char
 
 
+    # Handle timestamps
+    s = re.sub(r'[0-9]+(?::[0-9]+)+', lambda m: m.group(0).replace(':', '_'), s)
     result = ''.join(map(replace_insane, s))
     result = ''.join(map(replace_insane, s))
     if not is_id:
     if not is_id:
         while '__' in result:
         while '__' in result: