diff options
Diffstat (limited to 'youtube_dl/utils.py')
| -rw-r--r-- | youtube_dl/utils.py | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 7bcc85e2b..a5922b2b5 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -14,8 +14,8 @@ import email.utils  import errno  import functools  import gzip -import itertools  import io +import itertools  import json  import locale  import math @@ -24,8 +24,8 @@ import os  import pipes  import platform  import re -import ssl  import socket +import ssl  import struct  import subprocess  import sys @@ -89,6 +89,11 @@ KNOWN_EXTENSIONS = (      'wav',      '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():      """Get preferred encoding. @@ -365,6 +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      """      def replace_insane(char): +        if restricted and char in ACCENT_CHARS: +            return ACCENT_CHARS[char]          if char == '?' or ord(char) < 32 or ord(char) == 127:              return ''          elif char == '"': | 
