|
|
|
@ -150,22 +150,6 @@ MONTH_NAMES = {
|
|
|
|
|
'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
KNOWN_EXTENSIONS = (
|
|
|
|
|
'mp4', 'm4a', 'm4p', 'm4b', 'm4r', 'm4v', 'aac',
|
|
|
|
|
'flv', 'f4v', 'f4a', 'f4b',
|
|
|
|
|
'webm', 'ogg', 'ogv', 'oga', 'ogx', 'spx', 'opus',
|
|
|
|
|
'mkv', 'mka', 'mk3d',
|
|
|
|
|
'avi', 'divx',
|
|
|
|
|
'mov',
|
|
|
|
|
'asf', 'wmv', 'wma',
|
|
|
|
|
'3gp', '3g2',
|
|
|
|
|
'mp3',
|
|
|
|
|
'mpg',
|
|
|
|
|
'flac',
|
|
|
|
|
'ape',
|
|
|
|
|
'wav',
|
|
|
|
|
'f4f', 'f4m', 'm3u8', 'smil')
|
|
|
|
|
|
|
|
|
|
# needed for sanitizing filenames in restricted mode
|
|
|
|
|
ACCENT_CHARS = dict(zip('ÂÃÄÀÁÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖŐØŒÙÚÛÜŰÝÞßàáâãäåæçèéêëìíîïðñòóôõöőøœùúûüűýþÿ',
|
|
|
|
|
itertools.chain('AAAAAA', ['AE'], 'CEEEEIIIIDNOOOOOOO', ['OE'], 'UUUUUY', ['TH', 'ss'],
|
|
|
|
@ -5647,6 +5631,22 @@ class Namespace(types.SimpleNamespace):
|
|
|
|
|
return self.__dict__.items()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MEDIA_EXTENSIONS = Namespace(
|
|
|
|
|
common_video=('avi', 'flv', 'mkv', 'mov', 'mp4', 'webm'),
|
|
|
|
|
video=('3g2', '3gp', 'f4v', 'mk3d', 'divx', 'mpg', 'ogv', 'm4v', 'wmv'),
|
|
|
|
|
common_audio=('aiff', 'alac', 'flac', 'm4a', 'mka', 'mp3', 'ogg', 'opus', 'wav'),
|
|
|
|
|
audio=('aac', 'ape', 'asf', 'f4a', 'f4b', 'm4b', 'm4p', 'm4r', 'oga', 'ogx', 'spx', 'vorbis', 'wma'),
|
|
|
|
|
thumbnails=('jpg', 'png', 'webp'),
|
|
|
|
|
storyboards=('mhtml', ),
|
|
|
|
|
subtitles=('srt', 'vtt', 'ass', 'lrc'),
|
|
|
|
|
manifests=('f4f', 'f4m', 'm3u8', 'smil', 'mpd'),
|
|
|
|
|
)
|
|
|
|
|
MEDIA_EXTENSIONS.video += MEDIA_EXTENSIONS.common_video
|
|
|
|
|
MEDIA_EXTENSIONS.audio += MEDIA_EXTENSIONS.common_audio
|
|
|
|
|
|
|
|
|
|
KNOWN_EXTENSIONS = (*MEDIA_EXTENSIONS.video, *MEDIA_EXTENSIONS.audio, *MEDIA_EXTENSIONS.manifests)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Deprecated
|
|
|
|
|
has_certifi = bool(certifi)
|
|
|
|
|
has_websockets = bool(websockets)
|
|
|
|
|