1
2
3
4 """
5 | This file is part of the web2py Web Framework
6 | Copyrighted by Massimo Di Pierro <mdipierro@cs.depaul.edu>
7 | License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)
8
9 CONTENT_TYPE dictionary created against freedesktop.org's shared mime info
10 database version 1.1.
11
12 Deviations from official standards:
13 - .md: application/x-genesis-rom --> text/x-markdown
14 - .png: image/x-apple-ios-png --> image/png
15 Additions:
16 - .load: text/html
17 - .json: application/json
18 - .jsonp: application/jsonp
19 - .pickle: application/python-pickle
20 - .w2p': application/w2p
21 """
22
23 __all__ = ['contenttype']
24
25 CONTENT_TYPE = {
26 '.123': 'application/vnd.lotus-1-2-3',
27 '.3ds': 'image/x-3ds',
28 '.3g2': 'video/3gpp2',
29 '.3ga': 'video/3gpp',
30 '.3gp': 'video/3gpp',
31 '.3gp2': 'video/3gpp2',
32 '.3gpp': 'video/3gpp',
33 '.3gpp2': 'video/3gpp2',
34 '.602': 'application/x-t602',
35 '.669': 'audio/x-mod',
36 '.7z': 'application/x-7z-compressed',
37 '.a': 'application/x-archive',
38 '.aac': 'audio/aac',
39 '.abw': 'application/x-abiword',
40 '.abw.crashed': 'application/x-abiword',
41 '.abw.gz': 'application/x-abiword',
42 '.ac3': 'audio/ac3',
43 '.ace': 'application/x-ace',
44 '.adb': 'text/x-adasrc',
45 '.ads': 'text/x-adasrc',
46 '.afm': 'application/x-font-afm',
47 '.ag': 'image/x-applix-graphics',
48 '.ai': 'application/illustrator',
49 '.aif': 'audio/x-aiff',
50 '.aifc': 'audio/x-aifc',
51 '.aiff': 'audio/x-aiff',
52 '.aiffc': 'audio/x-aifc',
53 '.al': 'application/x-perl',
54 '.alz': 'application/x-alz',
55 '.amr': 'audio/amr',
56 '.amz': 'audio/x-amzxml',
57 '.ani': 'application/x-navi-animation',
58 '.anim[1-9j]': 'video/x-anim',
59 '.anx': 'application/annodex',
60 '.ape': 'audio/x-ape',
61 '.apk': 'application/vnd.android.package-archive',
62 '.ar': 'application/x-archive',
63 '.arj': 'application/x-arj',
64 '.arw': 'image/x-sony-arw',
65 '.as': 'application/x-applix-spreadsheet',
66 '.asc': 'text/plain',
67 '.asf': 'video/x-ms-asf',
68 '.asp': 'application/x-asp',
69 '.ass': 'text/x-ssa',
70 '.asx': 'audio/x-ms-asx',
71 '.atom': 'application/atom+xml',
72 '.au': 'audio/basic',
73 '.avf': 'video/x-msvideo',
74 '.avi': 'video/x-msvideo',
75 '.aw': 'application/x-applix-word',
76 '.awb': 'audio/amr-wb',
77 '.awk': 'application/x-awk',
78 '.axa': 'audio/annodex',
79 '.axv': 'video/annodex',
80 '.bak': 'application/x-trash',
81 '.bcpio': 'application/x-bcpio',
82 '.bdf': 'application/x-font-bdf',
83 '.bdm': 'video/mp2t',
84 '.bdmv': 'video/mp2t',
85 '.bib': 'text/x-bibtex',
86 '.bin': 'application/octet-stream',
87 '.blend': 'application/x-blender',
88 '.blender': 'application/x-blender',
89 '.bmp': 'image/bmp',
90 '.bz': 'application/x-bzip',
91 '.bz2': 'application/x-bzip',
92 '.c': 'text/x-csrc',
93 '.c++': 'text/x-c++src',
94 '.cab': 'application/vnd.ms-cab-compressed',
95 '.cap': 'application/vnd.tcpdump.pcap',
96 '.cb7': 'application/x-cb7',
97 '.cbl': 'text/x-cobol',
98 '.cbr': 'application/x-cbr',
99 '.cbt': 'application/x-cbt',
100 '.cbz': 'application/x-cbz',
101 '.cc': 'text/x-c++src',
102 '.ccmx': 'application/x-ccmx',
103 '.cdf': 'application/x-netcdf',
104 '.cdr': 'application/vnd.corel-draw',
105 '.cer': 'application/pkix-cert',
106 '.cert': 'application/x-x509-ca-cert',
107 '.cgm': 'image/cgm',
108 '.chm': 'application/vnd.ms-htmlhelp',
109 '.chrt': 'application/x-kchart',
110 '.class': 'application/x-java',
111 '.clpi': 'video/mp2t',
112 '.cls': 'text/x-tex',
113 '.cmake': 'text/x-cmake',
114 '.cob': 'text/x-cobol',
115 '.cpi': 'video/mp2t',
116 '.cpio': 'application/x-cpio',
117 '.cpio.gz': 'application/x-cpio-compressed',
118 '.cpp': 'text/x-c++src',
119 '.cr2': 'image/x-canon-cr2',
120 '.crl': 'application/pkix-crl',
121 '.crt': 'application/x-x509-ca-cert',
122 '.crw': 'image/x-canon-crw',
123 '.cs': 'text/x-csharp',
124 '.csh': 'application/x-csh',
125 '.css': 'text/css',
126 '.cssl': 'text/css',
127 '.csv': 'text/csv',
128 '.cue': 'application/x-cue',
129 '.cur': 'image/x-win-bitmap',
130 '.cxx': 'text/x-c++src',
131 '.d': 'text/x-dsrc',
132 '.dar': 'application/x-dar',
133 '.dbf': 'application/x-dbf',
134 '.dc': 'application/x-dc-rom',
135 '.dcl': 'text/x-dcl',
136 '.dcm': 'application/dicom',
137 '.dcr': 'image/x-kodak-dcr',
138 '.dds': 'image/x-dds',
139 '.deb': 'application/x-deb',
140 '.der': 'application/x-x509-ca-cert',
141 '.desktop': 'application/x-desktop',
142 '.di': 'text/x-dsrc',
143 '.dia': 'application/x-dia-diagram',
144 '.diff': 'text/x-patch',
145 '.divx': 'video/x-msvideo',
146 '.djv': 'image/vnd.djvu',
147 '.djvu': 'image/vnd.djvu',
148 '.dmg': 'application/x-apple-diskimage',
149 '.dmp': 'application/vnd.tcpdump.pcap',
150 '.dng': 'image/x-adobe-dng',
151 '.doc': 'application/msword',
152 '.docbook': 'application/x-docbook+xml',
153 '.docm': 'application/vnd.ms-word.document.macroenabled.12',
154 '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
155 '.dot': 'text/vnd.graphviz',
156 '.dotm': 'application/vnd.ms-word.template.macroenabled.12',
157 '.dotx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
158 '.dsl': 'text/x-dsl',
159 '.dtd': 'application/xml-dtd',
160 '.dts': 'audio/vnd.dts',
161 '.dtshd': 'audio/vnd.dts.hd',
162 '.dtx': 'text/x-tex',
163 '.dv': 'video/dv',
164 '.dvi': 'application/x-dvi',
165 '.dvi.bz2': 'application/x-bzdvi',
166 '.dvi.gz': 'application/x-gzdvi',
167 '.dwg': 'image/vnd.dwg',
168 '.dxf': 'image/vnd.dxf',
169 '.e': 'text/x-eiffel',
170 '.egon': 'application/x-egon',
171 '.eif': 'text/x-eiffel',
172 '.el': 'text/x-emacs-lisp',
173 '.emf': 'image/x-emf',
174 '.eml': 'message/rfc822',
175 '.emp': 'application/vnd.emusic-emusic_package',
176 '.ent': 'application/xml-external-parsed-entity',
177 '.eps': 'image/x-eps',
178 '.eps.bz2': 'image/x-bzeps',
179 '.eps.gz': 'image/x-gzeps',
180 '.epsf': 'image/x-eps',
181 '.epsf.bz2': 'image/x-bzeps',
182 '.epsf.gz': 'image/x-gzeps',
183 '.epsi': 'image/x-eps',
184 '.epsi.bz2': 'image/x-bzeps',
185 '.epsi.gz': 'image/x-gzeps',
186 '.epub': 'application/epub+zip',
187 '.erl': 'text/x-erlang',
188 '.es': 'application/ecmascript',
189 '.etheme': 'application/x-e-theme',
190 '.etx': 'text/x-setext',
191 '.exe': 'application/x-ms-dos-executable',
192 '.exr': 'image/x-exr',
193 '.ez': 'application/andrew-inset',
194 '.f': 'text/x-fortran',
195 '.f4a': 'audio/mp4',
196 '.f4b': 'audio/x-m4b',
197 '.f4v': 'video/mp4',
198 '.f90': 'text/x-fortran',
199 '.f95': 'text/x-fortran',
200 '.fb2': 'application/x-fictionbook+xml',
201 '.fig': 'image/x-xfig',
202 '.fits': 'image/fits',
203 '.fl': 'application/x-fluid',
204 '.flac': 'audio/flac',
205 '.flc': 'video/x-flic',
206 '.fli': 'video/x-flic',
207 '.flv': 'video/x-flv',
208 '.flw': 'application/x-kivio',
209 '.fo': 'text/x-xslfo',
210 '.fodg': 'application/vnd.oasis.opendocument.graphics-flat-xml',
211 '.fodp': 'application/vnd.oasis.opendocument.presentation-flat-xml',
212 '.fods': 'application/vnd.oasis.opendocument.spreadsheet-flat-xml',
213 '.fodt': 'application/vnd.oasis.opendocument.text-flat-xml',
214 '.for': 'text/x-fortran',
215 '.fxm': 'video/x-javafx',
216 '.g3': 'image/fax-g3',
217 '.gb': 'application/x-gameboy-rom',
218 '.gba': 'application/x-gba-rom',
219 '.gcrd': 'text/vcard',
220 '.ged': 'application/x-gedcom',
221 '.gedcom': 'application/x-gedcom',
222 '.gem': 'application/x-tar',
223 '.gen': 'application/x-genesis-rom',
224 '.gf': 'application/x-tex-gf',
225 '.gg': 'application/x-sms-rom',
226 '.gif': 'image/gif',
227 '.glade': 'application/x-glade',
228 '.gml': 'application/gml+xml',
229 '.gmo': 'application/x-gettext-translation',
230 '.gnc': 'application/x-gnucash',
231 '.gnd': 'application/gnunet-directory',
232 '.gnucash': 'application/x-gnucash',
233 '.gnumeric': 'application/x-gnumeric',
234 '.gnuplot': 'application/x-gnuplot',
235 '.go': 'text/x-go',
236 '.gp': 'application/x-gnuplot',
237 '.gpg': 'application/pgp-encrypted',
238 '.gplt': 'application/x-gnuplot',
239 '.gra': 'application/x-graphite',
240 '.gsf': 'application/x-font-type1',
241 '.gsm': 'audio/x-gsm',
242 '.gtar': 'application/x-tar',
243 '.gv': 'text/vnd.graphviz',
244 '.gvp': 'text/x-google-video-pointer',
245 '.gz': 'application/gzip',
246 '.h': 'text/x-chdr',
247 '.h++': 'text/x-c++hdr',
248 '.h4': 'application/x-hdf',
249 '.h5': 'application/x-hdf',
250 '.hdf': 'application/x-hdf',
251 '.hdf4': 'application/x-hdf',
252 '.hdf5': 'application/x-hdf',
253 '.hh': 'text/x-c++hdr',
254 '.hlp': 'application/winhlp',
255 '.hp': 'text/x-c++hdr',
256 '.hpgl': 'application/vnd.hp-hpgl',
257 '.hpp': 'text/x-c++hdr',
258 '.hs': 'text/x-haskell',
259 '.htm': 'text/html',
260 '.html': 'text/html',
261 '.hwp': 'application/x-hwp',
262 '.hwt': 'application/x-hwt',
263 '.hxx': 'text/x-c++hdr',
264 '.ica': 'application/x-ica',
265 '.icb': 'image/x-tga',
266 '.icc': 'application/vnd.iccprofile',
267 '.icm': 'application/vnd.iccprofile',
268 '.icns': 'image/x-icns',
269 '.ico': 'image/vnd.microsoft.icon',
270 '.ics': 'text/calendar',
271 '.idl': 'text/x-idl',
272 '.ief': 'image/ief',
273 '.iff': 'image/x-ilbm',
274 '.ilbm': 'image/x-ilbm',
275 '.ime': 'text/x-imelody',
276 '.imy': 'text/x-imelody',
277 '.ins': 'text/x-tex',
278 '.iptables': 'text/x-iptables',
279 '.iso': 'application/x-cd-image',
280 '.iso9660': 'application/x-cd-image',
281 '.it': 'audio/x-it',
282 '.it87': 'application/x-it87',
283 '.j2k': 'image/jp2',
284 '.jad': 'text/vnd.sun.j2me.app-descriptor',
285 '.jar': 'application/x-java-archive',
286 '.java': 'text/x-java',
287 '.jceks': 'application/x-java-jce-keystore',
288 '.jks': 'application/x-java-keystore',
289 '.jng': 'image/x-jng',
290 '.jnlp': 'application/x-java-jnlp-file',
291 '.jp2': 'image/jp2',
292 '.jpc': 'image/jp2',
293 '.jpe': 'image/jpeg',
294 '.jpeg': 'image/jpeg',
295 '.jpf': 'image/jp2',
296 '.jpg': 'image/jpeg',
297 '.jpr': 'application/x-jbuilder-project',
298 '.jpx': 'image/jp2',
299 '.js': 'application/javascript',
300 '.json': 'application/json',
301 '.jsonp': 'application/jsonp',
302 '.k25': 'image/x-kodak-k25',
303 '.kar': 'audio/midi',
304 '.karbon': 'application/x-karbon',
305 '.kdc': 'image/x-kodak-kdc',
306 '.kdelnk': 'application/x-desktop',
307 '.kexi': 'application/x-kexiproject-sqlite3',
308 '.kexic': 'application/x-kexi-connectiondata',
309 '.kexis': 'application/x-kexiproject-shortcut',
310 '.kfo': 'application/x-kformula',
311 '.kil': 'application/x-killustrator',
312 '.kino': 'application/smil',
313 '.kml': 'application/vnd.google-earth.kml+xml',
314 '.kmz': 'application/vnd.google-earth.kmz',
315 '.kon': 'application/x-kontour',
316 '.kpm': 'application/x-kpovmodeler',
317 '.kpr': 'application/x-kpresenter',
318 '.kpt': 'application/x-kpresenter',
319 '.kra': 'application/x-krita',
320 '.ks': 'application/x-java-keystore',
321 '.ksp': 'application/x-kspread',
322 '.kud': 'application/x-kugar',
323 '.kwd': 'application/x-kword',
324 '.kwt': 'application/x-kword',
325 '.la': 'application/x-shared-library-la',
326 '.latex': 'text/x-tex',
327 '.lbm': 'image/x-ilbm',
328 '.ldif': 'text/x-ldif',
329 '.lha': 'application/x-lha',
330 '.lhs': 'text/x-literate-haskell',
331 '.lhz': 'application/x-lhz',
332 '.load' : 'text/html',
333 '.log': 'text/x-log',
334 '.lrz': 'application/x-lrzip',
335 '.ltx': 'text/x-tex',
336 '.lua': 'text/x-lua',
337 '.lwo': 'image/x-lwo',
338 '.lwob': 'image/x-lwo',
339 '.lwp': 'application/vnd.lotus-wordpro',
340 '.lws': 'image/x-lws',
341 '.ly': 'text/x-lilypond',
342 '.lyx': 'application/x-lyx',
343 '.lz': 'application/x-lzip',
344 '.lzh': 'application/x-lha',
345 '.lzma': 'application/x-lzma',
346 '.lzo': 'application/x-lzop',
347 '.m': 'text/x-matlab',
348 '.m15': 'audio/x-mod',
349 '.m1u': 'video/vnd.mpegurl',
350 '.m2t': 'video/mp2t',
351 '.m2ts': 'video/mp2t',
352 '.m3u': 'application/vnd.apple.mpegurl',
353 '.m3u8': 'application/vnd.apple.mpegurl',
354 '.m4': 'application/x-m4',
355 '.m4a': 'audio/mp4',
356 '.m4b': 'audio/x-m4b',
357 '.m4u': 'video/vnd.mpegurl',
358 '.m4v': 'video/mp4',
359 '.mab': 'application/x-markaby',
360 '.mak': 'text/x-makefile',
361 '.man': 'application/x-troff-man',
362 '.manifest': 'text/cache-manifest',
363 '.markdown': 'text/x-markdown',
364 '.mbox': 'application/mbox',
365 '.md': 'text/x-markdown',
366 '.mdb': 'application/vnd.ms-access',
367 '.mdi': 'image/vnd.ms-modi',
368 '.me': 'text/x-troff-me',
369 '.med': 'audio/x-mod',
370 '.meta4': 'application/metalink4+xml',
371 '.metalink': 'application/metalink+xml',
372 '.mgp': 'application/x-magicpoint',
373 '.mht': 'application/x-mimearchive',
374 '.mhtml': 'application/x-mimearchive',
375 '.mid': 'audio/midi',
376 '.midi': 'audio/midi',
377 '.mif': 'application/x-mif',
378 '.minipsf': 'audio/x-minipsf',
379 '.mk': 'text/x-makefile',
380 '.mka': 'audio/x-matroska',
381 '.mkd': 'text/x-markdown',
382 '.mkv': 'video/x-matroska',
383 '.ml': 'text/x-ocaml',
384 '.mli': 'text/x-ocaml',
385 '.mm': 'text/x-troff-mm',
386 '.mmf': 'application/x-smaf',
387 '.mml': 'application/mathml+xml',
388 '.mng': 'video/x-mng',
389 '.mo': 'text/x-modelica',
390 '.mo3': 'audio/x-mo3',
391 '.mobi': 'application/x-mobipocket-ebook',
392 '.moc': 'text/x-moc',
393 '.mod': 'audio/x-mod',
394 '.mof': 'text/x-mof',
395 '.moov': 'video/quicktime',
396 '.mov': 'video/quicktime',
397 '.movie': 'video/x-sgi-movie',
398 '.mp+': 'audio/x-musepack',
399 '.mp2': 'video/mpeg',
400 '.mp3': 'audio/mpeg',
401 '.mp4': 'video/mp4',
402 '.mpc': 'audio/x-musepack',
403 '.mpe': 'video/mpeg',
404 '.mpeg': 'video/mpeg',
405 '.mpg': 'video/mpeg',
406 '.mpga': 'audio/mpeg',
407 '.mpl': 'video/mp2t',
408 '.mpls': 'video/mp2t',
409 '.mpp': 'audio/x-musepack',
410 '.mrl': 'text/x-mrml',
411 '.mrml': 'text/x-mrml',
412 '.mrw': 'image/x-minolta-mrw',
413 '.ms': 'text/x-troff-ms',
414 '.msi': 'application/x-msi',
415 '.msod': 'image/x-msod',
416 '.msx': 'application/x-msx-rom',
417 '.mtm': 'audio/x-mod',
418 '.mts': 'video/mp2t',
419 '.mup': 'text/x-mup',
420 '.mxf': 'application/mxf',
421 '.mxu': 'video/vnd.mpegurl',
422 '.n64': 'application/x-n64-rom',
423 '.nb': 'application/mathematica',
424 '.nc': 'application/x-netcdf',
425 '.nds': 'application/x-nintendo-ds-rom',
426 '.nef': 'image/x-nikon-nef',
427 '.nes': 'application/x-nes-rom',
428 '.nfo': 'text/x-nfo',
429 '.not': 'text/x-mup',
430 '.nsc': 'application/x-netshow-channel',
431 '.nsv': 'video/x-nsv',
432 '.nzb': 'application/x-nzb',
433 '.o': 'application/x-object',
434 '.obj': 'application/x-tgif',
435 '.ocl': 'text/x-ocl',
436 '.oda': 'application/oda',
437 '.odb': 'application/vnd.oasis.opendocument.database',
438 '.odc': 'application/vnd.oasis.opendocument.chart',
439 '.odf': 'application/vnd.oasis.opendocument.formula',
440 '.odg': 'application/vnd.oasis.opendocument.graphics',
441 '.odi': 'application/vnd.oasis.opendocument.image',
442 '.odm': 'application/vnd.oasis.opendocument.text-master',
443 '.odp': 'application/vnd.oasis.opendocument.presentation',
444 '.ods': 'application/vnd.oasis.opendocument.spreadsheet',
445 '.odt': 'application/vnd.oasis.opendocument.text',
446 '.oga': 'audio/ogg',
447 '.ogg': 'application/ogg',
448 '.ogm': 'video/x-ogm+ogg',
449 '.ogv': 'video/ogg',
450 '.ogx': 'application/ogg',
451 '.old': 'application/x-trash',
452 '.oleo': 'application/x-oleo',
453 '.ooc': 'text/x-ooc',
454 '.opml': 'text/x-opml+xml',
455 '.oprc': 'application/vnd.palm',
456 '.ora': 'image/openraster',
457 '.orf': 'image/x-olympus-orf',
458 '.otc': 'application/vnd.oasis.opendocument.chart-template',
459 '.otf': 'application/x-font-otf',
460 '.otg': 'application/vnd.oasis.opendocument.graphics-template',
461 '.oth': 'application/vnd.oasis.opendocument.text-web',
462 '.otp': 'application/vnd.oasis.opendocument.presentation-template',
463 '.ots': 'application/vnd.oasis.opendocument.spreadsheet-template',
464 '.ott': 'application/vnd.oasis.opendocument.text-template',
465 '.owl': 'application/rdf+xml',
466 '.oxps': 'application/oxps',
467 '.oxt': 'application/vnd.openofficeorg.extension',
468 '.p': 'text/x-pascal',
469 '.p10': 'application/pkcs10',
470 '.p12': 'application/x-pkcs12',
471 '.p7b': 'application/x-pkcs7-certificates',
472 '.p7c': 'application/pkcs7-mime',
473 '.p7m': 'application/pkcs7-mime',
474 '.p7s': 'application/pkcs7-signature',
475 '.p8': 'application/pkcs8',
476 '.pack': 'application/x-java-pack200',
477 '.pak': 'application/x-pak',
478 '.par2': 'application/x-par2',
479 '.pas': 'text/x-pascal',
480 '.patch': 'text/x-patch',
481 '.pbm': 'image/x-portable-bitmap',
482 '.pcap': 'application/vnd.tcpdump.pcap',
483 '.pcd': 'image/x-photo-cd',
484 '.pcf': 'application/x-cisco-vpn-settings',
485 '.pcf.gz': 'application/x-font-pcf',
486 '.pcf.z': 'application/x-font-pcf',
487 '.pcl': 'application/vnd.hp-pcl',
488 '.pct': 'image/x-pict',
489 '.pcx': 'image/x-pcx',
490 '.pdb': 'chemical/x-pdb',
491 '.pdc': 'application/x-aportisdoc',
492 '.pdf': 'application/pdf',
493 '.pdf.bz2': 'application/x-bzpdf',
494 '.pdf.gz': 'application/x-gzpdf',
495 '.pdf.xz': 'application/x-xzpdf',
496 '.pef': 'image/x-pentax-pef',
497 '.pem': 'application/x-x509-ca-cert',
498 '.perl': 'application/x-perl',
499 '.pfa': 'application/x-font-type1',
500 '.pfb': 'application/x-font-type1',
501 '.pfx': 'application/x-pkcs12',
502 '.pgm': 'image/x-portable-graymap',
503 '.pgn': 'application/x-chess-pgn',
504 '.pgp': 'application/pgp-encrypted',
505 '.php': 'application/x-php',
506 '.php3': 'application/x-php',
507 '.php4': 'application/x-php',
508 '.php5': 'application/x-php',
509 '.phps': 'application/x-php',
510 '.pict': 'image/x-pict',
511 '.pict1': 'image/x-pict',
512 '.pict2': 'image/x-pict',
513 '.pk': 'application/x-tex-pk',
514 '.pkipath': 'application/pkix-pkipath',
515 '.pkr': 'application/pgp-keys',
516 '.pl': 'application/x-perl',
517 '.pla': 'audio/x-iriver-pla',
518 '.pln': 'application/x-planperfect',
519 '.pls': 'audio/x-scpls',
520 '.pm': 'application/x-perl',
521 '.png': 'image/png',
522 '.pnm': 'image/x-portable-anymap',
523 '.pntg': 'image/x-macpaint',
524 '.po': 'text/x-gettext-translation',
525 '.por': 'application/x-spss-por',
526 '.pot': 'text/x-gettext-translation-template',
527 '.potm': 'application/vnd.ms-powerpoint.template.macroenabled.12',
528 '.potx': 'application/vnd.openxmlformats-officedocument.presentationml.template',
529 '.ppam': 'application/vnd.ms-powerpoint.addin.macroenabled.12',
530 '.ppm': 'image/x-portable-pixmap',
531 '.pps': 'application/vnd.ms-powerpoint',
532 '.ppsm': 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',
533 '.ppsx': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
534 '.ppt': 'application/vnd.ms-powerpoint',
535 '.pptm': 'application/vnd.ms-powerpoint.presentation.macroenabled.12',
536 '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
537 '.ppz': 'application/vnd.ms-powerpoint',
538 '.pqa': 'application/vnd.palm',
539 '.prc': 'application/vnd.palm',
540 '.ps': 'application/postscript',
541 '.ps.bz2': 'application/x-bzpostscript',
542 '.ps.gz': 'application/x-gzpostscript',
543 '.psd': 'image/vnd.adobe.photoshop',
544 '.psf': 'audio/x-psf',
545 '.psf.gz': 'application/x-gz-font-linux-psf',
546 '.psflib': 'audio/x-psflib',
547 '.psid': 'audio/prs.sid',
548 '.psw': 'application/x-pocket-word',
549 '.pw': 'application/x-pw',
550 '.py': 'text/x-python',
551 '.pyc': 'application/x-python-bytecode',
552 '.pickle': 'application/python-pickle',
553 '.pyo': 'application/x-python-bytecode',
554 '.qif': 'image/x-quicktime',
555 '.qml': 'text/x-qml',
556 '.qt': 'video/quicktime',
557 '.qti': 'application/x-qtiplot',
558 '.qti.gz': 'application/x-qtiplot',
559 '.qtif': 'image/x-quicktime',
560 '.qtl': 'application/x-quicktime-media-link',
561 '.qtvr': 'video/quicktime',
562 '.ra': 'audio/vnd.rn-realaudio',
563 '.raf': 'image/x-fuji-raf',
564 '.ram': 'application/ram',
565 '.rar': 'application/x-rar',
566 '.ras': 'image/x-cmu-raster',
567 '.raw': 'image/x-panasonic-raw',
568 '.rax': 'audio/vnd.rn-realaudio',
569 '.rb': 'application/x-ruby',
570 '.rdf': 'application/rdf+xml',
571 '.rdfs': 'application/rdf+xml',
572 '.reg': 'text/x-ms-regedit',
573 '.rej': 'text/x-reject',
574 '.rgb': 'image/x-rgb',
575 '.rle': 'image/rle',
576 '.rm': 'application/vnd.rn-realmedia',
577 '.rmj': 'application/vnd.rn-realmedia',
578 '.rmm': 'application/vnd.rn-realmedia',
579 '.rms': 'application/vnd.rn-realmedia',
580 '.rmvb': 'application/vnd.rn-realmedia',
581 '.rmx': 'application/vnd.rn-realmedia',
582 '.rnc': 'application/relax-ng-compact-syntax',
583 '.rng': 'application/xml',
584 '.roff': 'text/troff',
585 '.rp': 'image/vnd.rn-realpix',
586 '.rpm': 'application/x-rpm',
587 '.rss': 'application/rss+xml',
588 '.rt': 'text/vnd.rn-realtext',
589 '.rtf': 'application/rtf',
590 '.rtx': 'text/richtext',
591 '.rv': 'video/vnd.rn-realvideo',
592 '.rvx': 'video/vnd.rn-realvideo',
593 '.rw2': 'image/x-panasonic-raw2',
594 '.s3m': 'audio/x-s3m',
595 '.sam': 'application/x-amipro',
596 '.sami': 'application/x-sami',
597 '.sav': 'application/x-spss-sav',
598 '.scala': 'text/x-scala',
599 '.scm': 'text/x-scheme',
600 '.sda': 'application/vnd.stardivision.draw',
601 '.sdc': 'application/vnd.stardivision.calc',
602 '.sdd': 'application/vnd.stardivision.impress',
603 '.sdp': 'application/sdp',
604 '.sds': 'application/vnd.stardivision.chart',
605 '.sdw': 'application/vnd.stardivision.writer',
606 '.sgf': 'application/x-go-sgf',
607 '.sgi': 'image/x-sgi',
608 '.sgl': 'application/vnd.stardivision.writer',
609 '.sgm': 'text/sgml',
610 '.sgml': 'text/sgml',
611 '.sh': 'application/x-shellscript',
612 '.shape': 'application/x-dia-shape',
613 '.shar': 'application/x-shar',
614 '.shn': 'application/x-shorten',
615 '.siag': 'application/x-siag',
616 '.sid': 'audio/prs.sid',
617 '.sik': 'application/x-trash',
618 '.sis': 'application/vnd.symbian.install',
619 '.sisx': 'x-epoc/x-sisx-app',
620 '.sit': 'application/x-stuffit',
621 '.siv': 'application/sieve',
622 '.sk': 'image/x-skencil',
623 '.sk1': 'image/x-skencil',
624 '.skr': 'application/pgp-keys',
625 '.sldm': 'application/vnd.ms-powerpoint.slide.macroenabled.12',
626 '.sldx': 'application/vnd.openxmlformats-officedocument.presentationml.slide',
627 '.slk': 'text/spreadsheet',
628 '.smaf': 'application/x-smaf',
629 '.smc': 'application/x-snes-rom',
630 '.smd': 'application/vnd.stardivision.mail',
631 '.smf': 'application/vnd.stardivision.math',
632 '.smi': 'application/x-sami',
633 '.smil': 'application/smil',
634 '.sml': 'application/smil',
635 '.sms': 'application/x-sms-rom',
636 '.snd': 'audio/basic',
637 '.so': 'application/x-sharedlib',
638 '.spc': 'application/x-pkcs7-certificates',
639 '.spd': 'application/x-font-speedo',
640 '.spec': 'text/x-rpm-spec',
641 '.spl': 'application/x-shockwave-flash',
642 '.spm': 'application/x-source-rpm',
643 '.spx': 'audio/x-speex',
644 '.sql': 'text/x-sql',
645 '.sr2': 'image/x-sony-sr2',
646 '.src': 'application/x-wais-source',
647 '.src.rpm': 'application/x-source-rpm',
648 '.srf': 'image/x-sony-srf',
649 '.srt': 'application/x-subrip',
650 '.ss': 'text/x-scheme',
651 '.ssa': 'text/x-ssa',
652 '.stc': 'application/vnd.sun.xml.calc.template',
653 '.std': 'application/vnd.sun.xml.draw.template',
654 '.sti': 'application/vnd.sun.xml.impress.template',
655 '.stm': 'audio/x-stm',
656 '.stw': 'application/vnd.sun.xml.writer.template',
657 '.sty': 'text/x-tex',
658 '.sub': 'text/x-subviewer',
659 '.sun': 'image/x-sun-raster',
660 '.sv': 'text/x-svsrc',
661 '.sv4cpio': 'application/x-sv4cpio',
662 '.sv4crc': 'application/x-sv4crc',
663 '.svg': 'image/svg+xml',
664 '.svgz': 'image/svg+xml-compressed',
665 '.svh': 'text/x-svhdr',
666 '.swf': 'application/x-shockwave-flash',
667 '.swm': 'application/x-ms-wim',
668 '.sxc': 'application/vnd.sun.xml.calc',
669 '.sxd': 'application/vnd.sun.xml.draw',
670 '.sxg': 'application/vnd.sun.xml.writer.global',
671 '.sxi': 'application/vnd.sun.xml.impress',
672 '.sxm': 'application/vnd.sun.xml.math',
673 '.sxw': 'application/vnd.sun.xml.writer',
674 '.sylk': 'text/spreadsheet',
675 '.t': 'text/troff',
676 '.t2t': 'text/x-txt2tags',
677 '.tar': 'application/x-tar',
678 '.tar.bz': 'application/x-bzip-compressed-tar',
679 '.tar.bz2': 'application/x-bzip-compressed-tar',
680 '.tar.gz': 'application/x-compressed-tar',
681 '.tar.lrz': 'application/x-lrzip-compressed-tar',
682 '.tar.lzma': 'application/x-lzma-compressed-tar',
683 '.tar.lzo': 'application/x-tzo',
684 '.tar.xz': 'application/x-xz-compressed-tar',
685 '.tar.z': 'application/x-tarz',
686 '.taz': 'application/x-tarz',
687 '.tb2': 'application/x-bzip-compressed-tar',
688 '.tbz': 'application/x-bzip-compressed-tar',
689 '.tbz2': 'application/x-bzip-compressed-tar',
690 '.tcl': 'text/x-tcl',
691 '.tex': 'text/x-tex',
692 '.texi': 'text/x-texinfo',
693 '.texinfo': 'text/x-texinfo',
694 '.tga': 'image/x-tga',
695 '.tgz': 'application/x-compressed-tar',
696 '.theme': 'application/x-theme',
697 '.themepack': 'application/x-windows-themepack',
698 '.tif': 'image/tiff',
699 '.tiff': 'image/tiff',
700 '.tk': 'text/x-tcl',
701 '.tlrz': 'application/x-lrzip-compressed-tar',
702 '.tlz': 'application/x-lzma-compressed-tar',
703 '.tnef': 'application/vnd.ms-tnef',
704 '.tnf': 'application/vnd.ms-tnef',
705 '.toc': 'application/x-cdrdao-toc',
706 '.torrent': 'application/x-bittorrent',
707 '.tpic': 'image/x-tga',
708 '.tr': 'text/troff',
709 '.ts': 'video/mp2t',
710 '.tsv': 'text/tab-separated-values',
711 '.tta': 'audio/x-tta',
712 '.ttc': 'application/x-font-ttf',
713 '.ttf': 'application/x-font-ttf',
714 '.ttx': 'application/x-font-ttx',
715 '.txt': 'text/plain',
716 '.txz': 'application/x-xz-compressed-tar',
717 '.tzo': 'application/x-tzo',
718 '.ufraw': 'application/x-ufraw',
719 '.ui': 'application/x-gtk-builder',
720 '.uil': 'text/x-uil',
721 '.ult': 'audio/x-mod',
722 '.uni': 'audio/x-mod',
723 '.url': 'application/x-mswinurl',
724 '.ustar': 'application/x-ustar',
725 '.uue': 'text/x-uuencode',
726 '.v': 'text/x-verilog',
727 '.vala': 'text/x-vala',
728 '.vapi': 'text/x-vala',
729 '.vcard': 'text/vcard',
730 '.vcf': 'text/vcard',
731 '.vcs': 'text/calendar',
732 '.vct': 'text/vcard',
733 '.vda': 'image/x-tga',
734 '.vhd': 'text/x-vhdl',
735 '.vhdl': 'text/x-vhdl',
736 '.viv': 'video/vivo',
737 '.vivo': 'video/vivo',
738 '.vlc': 'audio/x-mpegurl',
739 '.vob': 'video/mpeg',
740 '.voc': 'audio/x-voc',
741 '.vor': 'application/vnd.stardivision.writer',
742 '.vrm': 'model/vrml',
743 '.vrml': 'model/vrml',
744 '.vsd': 'application/vnd.visio',
745 '.vss': 'application/vnd.visio',
746 '.vst': 'image/x-tga',
747 '.vsw': 'application/vnd.visio',
748 '.vtt': 'text/vtt',
749 '.w2p': 'application/w2p',
750 '.wav': 'audio/x-wav',
751 '.wax': 'audio/x-ms-asx',
752 '.wb1': 'application/x-quattropro',
753 '.wb2': 'application/x-quattropro',
754 '.wb3': 'application/x-quattropro',
755 '.wbmp': 'image/vnd.wap.wbmp',
756 '.wcm': 'application/vnd.ms-works',
757 '.wdb': 'application/vnd.ms-works',
758 '.webm': 'video/webm',
759 '.wim': 'application/x-ms-wim',
760 '.wk1': 'application/vnd.lotus-1-2-3',
761 '.wk3': 'application/vnd.lotus-1-2-3',
762 '.wk4': 'application/vnd.lotus-1-2-3',
763 '.wks': 'application/vnd.ms-works',
764 '.wma': 'audio/x-ms-wma',
765 '.wmf': 'image/x-wmf',
766 '.wml': 'text/vnd.wap.wml',
767 '.wmls': 'text/vnd.wap.wmlscript',
768 '.wmv': 'video/x-ms-wmv',
769 '.wmx': 'audio/x-ms-asx',
770 '.woff': 'application/font-woff',
771 '.wp': 'application/vnd.wordperfect',
772 '.wp4': 'application/vnd.wordperfect',
773 '.wp5': 'application/vnd.wordperfect',
774 '.wp6': 'application/vnd.wordperfect',
775 '.wpd': 'application/vnd.wordperfect',
776 '.wpg': 'application/x-wpg',
777 '.wpl': 'application/vnd.ms-wpl',
778 '.wpp': 'application/vnd.wordperfect',
779 '.wps': 'application/vnd.ms-works',
780 '.wri': 'application/x-mswrite',
781 '.wrl': 'model/vrml',
782 '.wsgi': 'text/x-python',
783 '.wv': 'audio/x-wavpack',
784 '.wvc': 'audio/x-wavpack-correction',
785 '.wvp': 'audio/x-wavpack',
786 '.wvx': 'audio/x-ms-asx',
787 '.wwf': 'application/x-wwf',
788 '.x3f': 'image/x-sigma-x3f',
789 '.xac': 'application/x-gnucash',
790 '.xbel': 'application/x-xbel',
791 '.xbl': 'application/xml',
792 '.xbm': 'image/x-xbitmap',
793 '.xcf': 'image/x-xcf',
794 '.xcf.bz2': 'image/x-compressed-xcf',
795 '.xcf.gz': 'image/x-compressed-xcf',
796 '.xhtml': 'application/xhtml+xml',
797 '.xi': 'audio/x-xi',
798 '.xla': 'application/vnd.ms-excel',
799 '.xlam': 'application/vnd.ms-excel.addin.macroenabled.12',
800 '.xlc': 'application/vnd.ms-excel',
801 '.xld': 'application/vnd.ms-excel',
802 '.xlf': 'application/x-xliff',
803 '.xliff': 'application/x-xliff',
804 '.xll': 'application/vnd.ms-excel',
805 '.xlm': 'application/vnd.ms-excel',
806 '.xlr': 'application/vnd.ms-works',
807 '.xls': 'application/vnd.ms-excel',
808 '.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
809 '.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12',
810 '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
811 '.xlt': 'application/vnd.ms-excel',
812 '.xltm': 'application/vnd.ms-excel.template.macroenabled.12',
813 '.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
814 '.xlw': 'application/vnd.ms-excel',
815 '.xm': 'audio/x-xm',
816 '.xmf': 'audio/x-xmf',
817 '.xmi': 'text/x-xmi',
818 '.xml': 'application/xml',
819 '.xpi': 'application/x-xpinstall',
820 '.xpm': 'image/x-xpixmap',
821 '.xps': 'application/oxps',
822 '.xsd': 'application/xml',
823 '.xsl': 'application/xslt+xml',
824 '.xslfo': 'text/x-xslfo',
825 '.xslm' : 'application/vnd.ms-excel.sheet.macroEnabled.12',
826 '.xslt': 'application/xslt+xml',
827 '.xspf': 'application/xspf+xml',
828 '.xul': 'application/vnd.mozilla.xul+xml',
829 '.xwd': 'image/x-xwindowdump',
830 '.xyz': 'chemical/x-pdb',
831 '.xz': 'application/x-xz',
832 '.yaml': 'application/x-yaml',
833 '.yml': 'application/x-yaml',
834 '.z': 'application/x-compress',
835 '.zabw': 'application/x-abiword',
836 '.zip': 'application/zip',
837 '.zoo': 'application/x-zoo',
838 }
839
840
841 -def contenttype(filename, default='text/plain'):
842 """
843 Returns the Content-Type string matching extension of the given filename.
844 """
845
846 i = filename.rfind('.')
847 if i >= 0:
848 default = CONTENT_TYPE.get(filename[i:].lower(), default)
849 j = filename.rfind('.', 0, i)
850 if j >= 0:
851 default = CONTENT_TYPE.get(filename[j:].lower(), default)
852 if default.startswith('text/'):
853 default += '; charset=utf-8'
854 return default
855