source: OpenRLabs-Git/deploy/rlabs-docker/web2py-rlabs/gluon/contenttype.py

main
Last change on this file was 42bd667, checked in by David Fuertes <dfuertes@…>, 4 years ago

Historial Limpio

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