Package gluon :: Module contenttype
[hide private]
[frames] | no frames]

Source Code for Module gluon.contenttype

  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   
  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