@@ -3,85 +3,87 @@ class MIMEType:
3
3
From https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
4
4
"""
5
5
6
- TEXT_PLAIN = "text/plain"
6
+ AAC = "audio/aac"
7
+ ABW = "application/x-abiword"
8
+ ARC = "application/x-freearc"
9
+ AVI = "video/x-msvideo"
10
+ AZW = "application/vnd.amazon.ebook"
11
+ BIN = "application/octet-stream"
12
+ BMP = "image/bmp"
13
+ BZ = "application/x-bzip"
14
+ BZ2 = "application/x-bzip2"
15
+ CSH = "application/x-csh"
16
+ CSS = "text/css"
17
+ CSV = "text/csv"
18
+ DOC = "application/msword"
19
+ DOCX = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
20
+ EOT = "application/vnd.ms-fontobject"
21
+ EPUB = "application/epub+zip"
22
+ GZ = "application/gzip"
23
+ GIF = "image/gif"
24
+ HTML = "text/html"
25
+ HTM = "text/html"
26
+ ICO = "image/vnd.microsoft.icon"
27
+ ICS = "text/calendar"
28
+ JAR = "application/java-archive"
29
+ JPEG = "image/jpeg"
30
+ JPG = "image/jpeg"
31
+ JS = "text/javascript"
32
+ JSON = "application/json"
33
+ JSONLD = "application/ld+json"
34
+ MID = "audio/midi"
35
+ MIDI = "audio/midi"
36
+ MJS = "text/javascript"
37
+ MP3 = "audio/mpeg"
38
+ CDA = "application/x-cdf"
39
+ MP4 = "video/mp4"
40
+ MPEG = "video/mpeg"
41
+ MPKG = "application/vnd.apple.installer+xml"
42
+ ODP = "application/vnd.oasis.opendocument.presentation"
43
+ ODS = "application/vnd.oasis.opendocument.spreadsheet"
44
+ ODT = "application/vnd.oasis.opendocument.text"
45
+ OGA = "audio/ogg"
46
+ OGV = "video/ogg"
47
+ OGX = "application/ogg"
48
+ OPUS = "audio/opus"
49
+ OTF = "font/otf"
50
+ PNG = "image/png"
51
+ PDF = "application/pdf"
52
+ PHP = "application/x-httpd-php"
53
+ PPT = "application/vnd.ms-powerpoint"
54
+ PPTX = "application/vnd.openxmlformats-officedocument.presentationml.presentation"
55
+ RAR = "application/vnd.rar"
56
+ RTF = "application/rtf"
57
+ SH = "application/x-sh"
58
+ SVG = "image/svg+xml"
59
+ SWF = "application/x-shockwave-flash"
60
+ TAR = "application/x-tar"
61
+ TIFF = "image/tiff"
62
+ TIF = "image/tiff"
63
+ TS = "video/mp2t"
64
+ TTF = "font/ttf"
65
+ TXT = "text/plain"
66
+ VSD = "application/vnd.visio"
67
+ WAV = "audio/wav"
68
+ WEBA = "audio/webm"
69
+ WEBM = "video/webm"
70
+ WEBP = "image/webp"
71
+ WOFF = "font/woff"
72
+ WOFF2 = "font/woff2"
73
+ XHTML = "application/xhtml+xml"
74
+ XLS = "application/vnd.ms-excel"
75
+ XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
76
+ XML = "application/xml"
77
+ XUL = "application/vnd.mozilla.xul+xml"
78
+ ZIP = "application/zip"
79
+ _7Z = "application/x-7z-compressed"
7
80
8
- _MIME_TYPES = {
9
- "aac" : "audio/aac" ,
10
- "abw" : "application/x-abiword" ,
11
- "arc" : "application/x-freearc" ,
12
- "avi" : "video/x-msvideo" ,
13
- "azw" : "application/vnd.amazon.ebook" ,
14
- "bin" : "application/octet-stream" ,
15
- "bmp" : "image/bmp" ,
16
- "bz" : "application/x-bzip" ,
17
- "bz2" : "application/x-bzip2" ,
18
- "csh" : "application/x-csh" ,
19
- "css" : "text/css" ,
20
- "csv" : "text/csv" ,
21
- "doc" : "application/msword" ,
22
- "docx" : "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ,
23
- "eot" : "application/vnd.ms-fontobject" ,
24
- "epub" : "application/epub+zip" ,
25
- "gz" : "application/gzip" ,
26
- "gif" : "image/gif" ,
27
- "html" : "text/html" ,
28
- "htm" : "text/html" ,
29
- "ico" : "image/vnd.microsoft.icon" ,
30
- "ics" : "text/calendar" ,
31
- "jar" : "application/java-archive" ,
32
- "jpeg .jpg" : "image/jpeg" ,
33
- "js" : "text/javascript" ,
34
- "json" : "application/json" ,
35
- "jsonld" : "application/ld+json" ,
36
- "mid" : "audio/midi" ,
37
- "midi" : "audio/midi" ,
38
- "mjs" : "text/javascript" ,
39
- "mp3" : "audio/mpeg" ,
40
- "cda" : "application/x-cdf" ,
41
- "mp4" : "video/mp4" ,
42
- "mpeg" : "video/mpeg" ,
43
- "mpkg" : "application/vnd.apple.installer+xml" ,
44
- "odp" : "application/vnd.oasis.opendocument.presentation" ,
45
- "ods" : "application/vnd.oasis.opendocument.spreadsheet" ,
46
- "odt" : "application/vnd.oasis.opendocument.text" ,
47
- "oga" : "audio/ogg" ,
48
- "ogv" : "video/ogg" ,
49
- "ogx" : "application/ogg" ,
50
- "opus" : "audio/opus" ,
51
- "otf" : "font/otf" ,
52
- "png" : "image/png" ,
53
- "pdf" : "application/pdf" ,
54
- "php" : "application/x-httpd-php" ,
55
- "ppt" : "application/vnd.ms-powerpoint" ,
56
- "pptx" : "application/vnd.openxmlformats-officedocument.presentationml.presentation" ,
57
- "rar" : "application/vnd.rar" ,
58
- "rtf" : "application/rtf" ,
59
- "sh" : "application/x-sh" ,
60
- "svg" : "image/svg+xml" ,
61
- "swf" : "application/x-shockwave-flash" ,
62
- "tar" : "application/x-tar" ,
63
- "tiff" : "image/tiff" ,
64
- "tif" : "image/tiff" ,
65
- "ts" : "video/mp2t" ,
66
- "ttf" : "font/ttf" ,
67
- "txt" : TEXT_PLAIN ,
68
- "vsd" : "application/vnd.visio" ,
69
- "wav" : "audio/wav" ,
70
- "weba" : "audio/webm" ,
71
- "webm" : "video/webm" ,
72
- "webp" : "image/webp" ,
73
- "woff" : "font/woff" ,
74
- "woff2" : "font/woff2" ,
75
- "xhtml" : "application/xhtml+xml" ,
76
- "xls" : "application/vnd.ms-excel" ,
77
- "xlsx" : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ,
78
- "xml" : "application/xml" ,
79
- "xul" : "application/vnd.mozilla.xul+xml" ,
80
- "zip" : "application/zip" ,
81
- "7z" : "application/x-7z-compressed" ,
82
- }
83
81
84
82
@staticmethod
85
- def mime_type (filename ):
83
+ def from_file_name (filename ):
86
84
"""Return the mime type for the given filename. If not known, return "text/plain"."""
87
- return MIMEType ._MIME_TYPES .get (filename .split ("." )[- 1 ], MIMEType .TEXT_PLAIN )
85
+ attr_name = filename .split ("." )[- 1 ].upper ()
86
+
87
+ if attr_name [0 ].isdigit (): attr_name = "_" + attr_name
88
+
89
+ return getattr (MIMEType , attr_name , MIMEType .TXT )
0 commit comments