2
0
Эх сурвалжийг харах

improved performance by extracting accented chars to top level

Adam Thalhammer 9 жил өмнө
parent
commit
c587cbb793

+ 7 - 5
youtube_dl/utils.py

@@ -89,6 +89,11 @@ KNOWN_EXTENSIONS = (
     'wav',
     'wav',
     'f4f', 'f4m', 'm3u8', 'smil')
     'f4f', 'f4m', 'm3u8', 'smil')
 
 
+# needed for sanitizing filenames in restricted mode
+ACCENT_CHARS = dict(zip('ÂÃÄÀÁÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ',
+                        itertools.chain('AAAAAA', ['AE'], 'CEEEEIIIIDNOOOOOOUUUUYP', ['ss'],
+                                        'aaaaaa', ['ae'], 'ceeeeiiiionoooooouuuuypy')))
+
 
 
 def preferredencoding():
 def preferredencoding():
     """Get preferred encoding.
     """Get preferred encoding.
@@ -365,11 +370,8 @@ def sanitize_filename(s, restricted=False, is_id=False):
     Set is_id if this is not an arbitrary string, but an ID that should be kept if possible
     Set is_id if this is not an arbitrary string, but an ID that should be kept if possible
     """
     """
     def replace_insane(char):
     def replace_insane(char):
-        accents = dict(zip('ÂÃÄÀÁÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ',
-                           itertools.chain('AAAAAA', ['AE'], 'CEEEEIIIIDNOOOOOOUUUUYP', ['ss'],
-                                           'aaaaaa', ['ae'], 'ceeeeiiiionoooooouuuuypy')))
-        if restricted and char in accents:
-            return accents[char]
+        if restricted and char in ACCENT_CHARS:
+            return ACCENT_CHARS[char]
         if char == '?' or ord(char) < 32 or ord(char) == 127:
         if char == '?' or ord(char) < 32 or ord(char) == 127:
             return ''
             return ''
         elif char == '"':
         elif char == '"':