|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
# Copyright (C) 2014-2020 RhodeCode GmbH
|
|
|
#
|
|
|
# This program is free software: you can redistribute it and/or modify
|
|
|
# it under the terms of the GNU Affero General Public License, version 3
|
|
|
# (only), as published by the Free Software Foundation.
|
|
|
#
|
|
|
# This program is distributed in the hope that it will be useful,
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
# GNU General Public License for more details.
|
|
|
#
|
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
#
|
|
|
# This program is dual-licensed. If you wish to learn more about the
|
|
|
# RhodeCode Enterprise Edition, including its added features, Support services,
|
|
|
# and proprietary license terms, please see https://rhodecode.com/licenses/
|
|
|
|
|
|
DEFAULTS = {
|
|
|
'encodings_map': {'.gz': 'gzip',
|
|
|
'.Z': 'compress',
|
|
|
'.bz2': 'bzip2',
|
|
|
'.xz': 'xz'},
|
|
|
'suffix_map': {'.svgz': '.svg.gz',
|
|
|
'.tgz': '.tar.gz',
|
|
|
'.taz': '.tar.gz',
|
|
|
'.tz': '.tar.gz',
|
|
|
'.tbz2': '.tar.bz2',
|
|
|
'.txz': '.tar.xz'},
|
|
|
}
|
|
|
|
|
|
TYPES_MAP = [
|
|
|
{'.jpg': 'image/jpg',
|
|
|
'.mid': 'audio/midi',
|
|
|
'.midi': 'audio/midi',
|
|
|
'.pct': 'image/pict',
|
|
|
'.pic': 'image/pict',
|
|
|
'.pict': 'image/pict',
|
|
|
'.rtf': 'application/rtf',
|
|
|
'.xul': 'text/xul'},
|
|
|
{'.123': 'application/vnd.lotus-1-2-3',
|
|
|
'.3dml': 'text/vnd.in3d.3dml',
|
|
|
'.3g2': 'video/3gpp2',
|
|
|
'.3gp': 'video/3gpp',
|
|
|
'.7z': 'application/x-7z-compressed',
|
|
|
'.ASM': 'text/x-nasm',
|
|
|
'.C': 'text/x-c++hdr',
|
|
|
'.COB': 'text/x-cobol',
|
|
|
'.CPP': 'text/x-c++hdr',
|
|
|
'.CPY': 'text/x-cobol',
|
|
|
'.F': 'text/x-fortran',
|
|
|
'.F90': 'text/x-fortran',
|
|
|
'.H': 'text/x-c++hdr',
|
|
|
'.R': 'text/S-plus',
|
|
|
'.Rd': 'text/x-r-doc',
|
|
|
'.S': 'text/S-plus',
|
|
|
'.[1234567]': 'application/x-troff',
|
|
|
'.a': 'application/octet-stream',
|
|
|
'.aab': 'application/x-authorware-bin',
|
|
|
'.aac': 'audio/x-aac',
|
|
|
'.aam': 'application/x-authorware-map',
|
|
|
'.aas': 'application/x-authorware-seg',
|
|
|
'.abap': 'text/x-abap',
|
|
|
'.abw': 'application/x-abiword',
|
|
|
'.ac': 'application/pkix-attr-cert',
|
|
|
'.acc': 'application/vnd.americandynamics.acc',
|
|
|
'.ace': 'application/x-ace-compressed',
|
|
|
'.acu': 'application/vnd.acucobol',
|
|
|
'.acutc': 'application/vnd.acucorp',
|
|
|
'.ada': 'text/x-ada',
|
|
|
'.adb': 'text/x-ada',
|
|
|
'.adp': 'audio/adpcm',
|
|
|
'.ads': 'text/x-ada',
|
|
|
'.aep': 'application/vnd.audiograph',
|
|
|
'.afm': 'application/x-font-type1',
|
|
|
'.afp': 'application/vnd.ibm.modcap',
|
|
|
'.ahead': 'application/vnd.ahead.space',
|
|
|
'.ahk': 'text/x-autohotkey',
|
|
|
'.ahkl': 'text/x-autohotkey',
|
|
|
'.ai': 'application/postscript',
|
|
|
'.aif': 'audio/x-aiff',
|
|
|
'.aifc': 'audio/x-aiff',
|
|
|
'.aiff': 'audio/x-aiff',
|
|
|
'.air': 'application/vnd.adobe.air-application-installer-package+zip',
|
|
|
'.ait': 'application/vnd.dvb.ait',
|
|
|
'.aj': 'text/x-aspectj',
|
|
|
'.ami': 'application/vnd.amiga.ami',
|
|
|
'.apk': 'application/vnd.android.package-archive',
|
|
|
'.application': 'application/x-ms-application',
|
|
|
'.apr': 'application/vnd.lotus-approach',
|
|
|
'.as': 'application/x-actionscript3',
|
|
|
'.asc': 'application/pgp-signature',
|
|
|
'.asf': 'video/x-ms-asf',
|
|
|
'.asm': 'text/x-asm',
|
|
|
'.aso': 'application/vnd.accpac.simply.aso',
|
|
|
'.aspx': 'application/x-aspx',
|
|
|
'.asx': 'video/x-ms-asf',
|
|
|
'.asy': 'text/x-asymptote',
|
|
|
'.atc': 'application/vnd.acucorp',
|
|
|
'.atom': 'application/atom+xml',
|
|
|
'.atomcat': 'application/atomcat+xml',
|
|
|
'.atomsvc': 'application/atomsvc+xml',
|
|
|
'.atx': 'application/vnd.antix.game-component',
|
|
|
'.au': 'audio/basic',
|
|
|
'.au3': 'text/x-autoit',
|
|
|
'.aux': 'text/x-tex',
|
|
|
'.avi': 'video/x-msvideo',
|
|
|
'.aw': 'application/applixware',
|
|
|
'.awk': 'application/x-awk',
|
|
|
'.azf': 'application/vnd.airzip.filesecure.azf',
|
|
|
'.azs': 'application/vnd.airzip.filesecure.azs',
|
|
|
'.azw': 'application/vnd.amazon.ebook',
|
|
|
'.b': 'application/x-brainfuck',
|
|
|
'.bas': 'text/x-vbnet',
|
|
|
'.bash': 'text/x-sh',
|
|
|
'.bat': 'application/x-msdownload',
|
|
|
'.bcpio': 'application/x-bcpio',
|
|
|
'.bdf': 'application/x-font-bdf',
|
|
|
'.bdm': 'application/vnd.syncml.dm+wbxml',
|
|
|
'.bed': 'application/vnd.realvnc.bed',
|
|
|
'.befunge': 'application/x-befunge',
|
|
|
'.bf': 'application/x-brainfuck',
|
|
|
'.bh2': 'application/vnd.fujitsu.oasysprs',
|
|
|
'.bin': 'application/octet-stream',
|
|
|
'.bmi': 'application/vnd.bmi',
|
|
|
'.bmp': 'image/bmp',
|
|
|
'.bmx': 'text/x-bmx',
|
|
|
'.boo': 'text/x-boo',
|
|
|
'.book': 'application/vnd.framemaker',
|
|
|
'.box': 'application/vnd.previewsystems.box',
|
|
|
'.boz': 'application/x-bzip2',
|
|
|
'.bpk': 'application/octet-stream',
|
|
|
'.btif': 'image/prs.btif',
|
|
|
'.bz': 'application/x-bzip',
|
|
|
'.bz2': 'application/x-bzip2',
|
|
|
'.c': 'text/x-c',
|
|
|
'.c++': 'text/x-c++hdr',
|
|
|
'.c++-objdump': 'text/x-cpp-objdump',
|
|
|
'.c-objdump': 'text/x-c-objdump',
|
|
|
'.c11amc': 'application/vnd.cluetrust.cartomobile-config',
|
|
|
'.c11amz': 'application/vnd.cluetrust.cartomobile-config-pkg',
|
|
|
'.c4d': 'application/vnd.clonk.c4group',
|
|
|
'.c4f': 'application/vnd.clonk.c4group',
|
|
|
'.c4g': 'application/vnd.clonk.c4group',
|
|
|
'.c4p': 'application/vnd.clonk.c4group',
|
|
|
'.c4u': 'application/vnd.clonk.c4group',
|
|
|
'.cab': 'application/vnd.ms-cab-compressed',
|
|
|
'.car': 'application/vnd.curl.car',
|
|
|
'.cat': 'application/vnd.ms-pki.seccat',
|
|
|
'.cc': 'text/x-c',
|
|
|
'.cct': 'application/x-director',
|
|
|
'.ccxml': 'application/ccxml+xml',
|
|
|
'.cdbcmsg': 'application/vnd.contact.cmsg',
|
|
|
'.cdf': 'application/x-netcdf',
|
|
|
'.cdkey': 'application/vnd.mediastation.cdkey',
|
|
|
'.cdmia': 'application/cdmi-capability',
|
|
|
'.cdmic': 'application/cdmi-container',
|
|
|
'.cdmid': 'application/cdmi-domain',
|
|
|
'.cdmio': 'application/cdmi-object',
|
|
|
'.cdmiq': 'application/cdmi-queue',
|
|
|
'.cdx': 'chemical/x-cdx',
|
|
|
'.cdxml': 'application/vnd.chemdraw+xml',
|
|
|
'.cdy': 'application/vnd.cinderella',
|
|
|
'.cer': 'application/pkix-cert',
|
|
|
'.ceylon': 'text/x-ceylon',
|
|
|
'.cfc': 'application/x-coldfusion',
|
|
|
'.cfg': 'text/x-ini',
|
|
|
'.cfm': 'application/x-coldfusion',
|
|
|
'.cfml': 'application/x-coldfusion',
|
|
|
'.cgm': 'image/cgm',
|
|
|
'.chat': 'application/x-chat',
|
|
|
'.chm': 'application/vnd.ms-htmlhelp',
|
|
|
'.chrt': 'application/vnd.kde.kchart',
|
|
|
'.cif': 'chemical/x-cif',
|
|
|
'.cii': 'application/vnd.anser-web-certificate-issue-initiation',
|
|
|
'.cil': 'application/vnd.ms-artgalry',
|
|
|
'.cl': 'text/x-common-lisp',
|
|
|
'.cla': 'application/vnd.claymore',
|
|
|
'.class': 'application/java-vm',
|
|
|
'.clj': 'text/x-clojure',
|
|
|
'.clkk': 'application/vnd.crick.clicker.keyboard',
|
|
|
'.clkp': 'application/vnd.crick.clicker.palette',
|
|
|
'.clkt': 'application/vnd.crick.clicker.template',
|
|
|
'.clkw': 'application/vnd.crick.clicker.wordbank',
|
|
|
'.clkx': 'application/vnd.crick.clicker',
|
|
|
'.clp': 'application/x-msclip',
|
|
|
'.cls': 'text/x-openedge',
|
|
|
'.cmake': 'text/x-cmake',
|
|
|
'.cmc': 'application/vnd.cosmocaller',
|
|
|
'.cmd': 'application/x-dos-batch',
|
|
|
'.cmdf': 'chemical/x-cmdf',
|
|
|
'.cml': 'chemical/x-cml',
|
|
|
'.cmp': 'application/vnd.yellowriver-custom-menu',
|
|
|
'.cmx': 'image/x-cmx',
|
|
|
'.cob': 'text/x-cobol',
|
|
|
'.cod': 'application/vnd.rim.cod',
|
|
|
'.coffee': 'text/coffeescript',
|
|
|
'.com': 'application/x-msdownload',
|
|
|
'.conf': 'text/plain',
|
|
|
'.cp': 'text/x-c++hdr',
|
|
|
'.cpio': 'application/x-cpio',
|
|
|
'.cpp': 'text/x-c',
|
|
|
'.cpp-objdump': 'text/x-cpp-objdump',
|
|
|
'.cpt': 'application/mac-compactpro',
|
|
|
'.cpy': 'text/x-cobol',
|
|
|
'.crd': 'application/x-mscardfile',
|
|
|
'.crl': 'application/pkix-crl',
|
|
|
'.croc': 'text/x-crocsrc',
|
|
|
'.crt': 'application/x-x509-ca-cert',
|
|
|
'.cryptonote': 'application/vnd.rig.cryptonote',
|
|
|
'.cs': 'text/x-csharp',
|
|
|
'.csh': 'application/x-csh',
|
|
|
'.csml': 'chemical/x-csml',
|
|
|
'.csp': 'application/vnd.commonspace',
|
|
|
'.css': 'text/css',
|
|
|
'.cst': 'application/x-director',
|
|
|
'.csv': 'text/csv',
|
|
|
'.cu': 'application/cu-seeme',
|
|
|
'.cuh': 'text/x-cuda',
|
|
|
'.curl': 'text/vnd.curl',
|
|
|
'.cww': 'application/prs.cww',
|
|
|
'.cxt': 'application/x-director',
|
|
|
'.cxx': 'text/x-c',
|
|
|
'.cxx-objdump': 'text/x-cpp-objdump',
|
|
|
'.d': 'text/x-dsrc',
|
|
|
'.d-objdump': 'text/x-d-objdump',
|
|
|
'.dae': 'model/vnd.collada+xml',
|
|
|
'.daf': 'application/vnd.mobius.daf',
|
|
|
'.dart': 'text/x-dart',
|
|
|
'.dataless': 'application/vnd.fdsn.seed',
|
|
|
'.davmount': 'application/davmount+xml',
|
|
|
'.dcr': 'application/x-director',
|
|
|
'.dcurl': 'text/vnd.curl.dcurl',
|
|
|
'.dd2': 'application/vnd.oma.dd2+xml',
|
|
|
'.ddd': 'application/vnd.fujixerox.ddd',
|
|
|
'.deb': 'application/x-debian-package',
|
|
|
'.def': 'text/plain',
|
|
|
'.deploy': 'application/octet-stream',
|
|
|
'.der': 'application/x-x509-ca-cert',
|
|
|
'.dfac': 'application/vnd.dreamfactory',
|
|
|
'.dg': 'text/x-dg',
|
|
|
'.di': 'text/x-dsrc',
|
|
|
'.dic': 'text/x-c',
|
|
|
'.dif': 'video/x-dv',
|
|
|
'.diff': 'text/x-diff',
|
|
|
'.dir': 'application/x-director',
|
|
|
'.dis': 'application/vnd.mobius.dis',
|
|
|
'.dist': 'application/octet-stream',
|
|
|
'.distz': 'application/octet-stream',
|
|
|
'.djv': 'image/vnd.djvu',
|
|
|
'.djvu': 'image/vnd.djvu',
|
|
|
'.dll': 'application/x-msdownload',
|
|
|
'.dmg': 'application/octet-stream',
|
|
|
'.dms': 'application/octet-stream',
|
|
|
'.dna': 'application/vnd.dna',
|
|
|
'.doc': 'application/msword',
|
|
|
'.docm': 'application/vnd.ms-word.document.macroenabled.12',
|
|
|
'.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
|
'.dot': 'application/msword',
|
|
|
'.dotm': 'application/vnd.ms-word.template.macroenabled.12',
|
|
|
'.dotx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
|
|
|
'.dp': 'application/vnd.osgi.dp',
|
|
|
'.dpg': 'application/vnd.dpgraph',
|
|
|
'.dra': 'audio/vnd.dra',
|
|
|
'.dsc': 'text/prs.lines.tag',
|
|
|
'.dssc': 'application/dssc+der',
|
|
|
'.dtb': 'application/x-dtbook+xml',
|
|
|
'.dtd': 'application/xml-dtd',
|
|
|
'.dts': 'audio/vnd.dts',
|
|
|
'.dtshd': 'audio/vnd.dts.hd',
|
|
|
'.duby': 'text/x-ruby',
|
|
|
'.duel': 'text/x-duel',
|
|
|
'.dump': 'application/octet-stream',
|
|
|
'.dv': 'video/x-dv',
|
|
|
'.dvi': 'application/x-dvi',
|
|
|
'.dwf': 'model/vnd.dwf',
|
|
|
'.dwg': 'image/vnd.dwg',
|
|
|
'.dxf': 'image/vnd.dxf',
|
|
|
'.dxp': 'application/vnd.spotfire.dxp',
|
|
|
'.dxr': 'application/x-director',
|
|
|
'.dyl': 'text/x-dylan',
|
|
|
'.dylan': 'text/x-dylan',
|
|
|
'.dylan-console': 'text/x-dylan-console',
|
|
|
'.ebuild': 'text/x-sh',
|
|
|
'.ec': 'text/x-echdr',
|
|
|
'.ecelp4800': 'audio/vnd.nuera.ecelp4800',
|
|
|
'.ecelp7470': 'audio/vnd.nuera.ecelp7470',
|
|
|
'.ecelp9600': 'audio/vnd.nuera.ecelp9600',
|
|
|
'.ecl': 'text/x-ecl',
|
|
|
'.eclass': 'text/x-sh',
|
|
|
'.ecma': 'application/ecmascript',
|
|
|
'.edm': 'application/vnd.novadigm.edm',
|
|
|
'.edx': 'application/vnd.novadigm.edx',
|
|
|
'.efif': 'application/vnd.picsel',
|
|
|
'.eh': 'text/x-echdr',
|
|
|
'.ei6': 'application/vnd.pg.osasli',
|
|
|
'.el': 'text/x-common-lisp',
|
|
|
'.elc': 'application/octet-stream',
|
|
|
'.eml': 'message/rfc822',
|
|
|
'.emma': 'application/emma+xml',
|
|
|
'.eol': 'audio/vnd.digital-winds',
|
|
|
'.eot': 'application/vnd.ms-fontobject',
|
|
|
'.eps': 'application/postscript',
|
|
|
'.epub': 'application/epub+zip',
|
|
|
'.erl': 'text/x-erlang',
|
|
|
'.erl-sh': 'text/x-erl-shellsession',
|
|
|
'.es': 'text/x-erlang',
|
|
|
'.es3': 'application/vnd.eszigno3+xml',
|
|
|
'.escript': 'text/x-erlang',
|
|
|
'.esf': 'application/vnd.epson.esf',
|
|
|
'.et3': 'application/vnd.eszigno3+xml',
|
|
|
'.etx': 'text/x-setext',
|
|
|
'.evoque': 'application/x-evoque',
|
|
|
'.ex': 'text/x-elixir',
|
|
|
'.exe': 'application/x-msdownload',
|
|
|
'.exi': 'application/exi',
|
|
|
'.exs': 'text/x-elixir',
|
|
|
'.ext': 'application/vnd.novadigm.ext',
|
|
|
'.ez': 'application/andrew-inset',
|
|
|
'.ez2': 'application/vnd.ezpix-album',
|
|
|
'.ez3': 'application/vnd.ezpix-package',
|
|
|
'.f': 'text/x-fortran',
|
|
|
'.f4v': 'video/x-f4v',
|
|
|
'.f77': 'text/x-fortran',
|
|
|
'.f90': 'text/x-fortran',
|
|
|
'.factor': 'text/x-factor',
|
|
|
'.fan': 'application/x-fantom',
|
|
|
'.fancypack': 'text/x-fancysrc',
|
|
|
'.fbs': 'image/vnd.fastbidsheet',
|
|
|
'.fcs': 'application/vnd.isac.fcs',
|
|
|
'.fdf': 'application/vnd.fdf',
|
|
|
'.fe_launch': 'application/vnd.denovo.fcselayout-link',
|
|
|
'.feature': 'text/x-gherkin',
|
|
|
'.fg5': 'application/vnd.fujitsu.oasysgp',
|
|
|
'.fgd': 'application/x-director',
|
|
|
'.fh': 'image/x-freehand',
|
|
|
'.fh4': 'image/x-freehand',
|
|
|
'.fh5': 'image/x-freehand',
|
|
|
'.fh7': 'image/x-freehand',
|
|
|
'.fhc': 'image/x-freehand',
|
|
|
'.fig': 'application/x-xfig',
|
|
|
'.fli': 'video/x-fli',
|
|
|
'.flo': 'application/vnd.micrografx.flo',
|
|
|
'.flv': 'video/x-flv',
|
|
|
'.flw': 'application/vnd.kde.kivio',
|
|
|
'.flx': 'text/vnd.fmi.flexstor',
|
|
|
'.flxh': 'text/x-felix',
|
|
|
'.fly': 'text/vnd.fly',
|
|
|
'.fm': 'application/vnd.framemaker',
|
|
|
'.fnc': 'application/vnd.frogans.fnc',
|
|
|
'.for': 'text/x-fortran',
|
|
|
'.fpx': 'image/vnd.fpx',
|
|
|
'.frag': 'text/x-glslsrc',
|
|
|
'.frame': 'application/vnd.framemaker',
|
|
|
'.fs': 'text/x-fsharp',
|
|
|
'.fsc': 'application/vnd.fsc.weblaunch',
|
|
|
'.fsi': 'text/x-fsharp',
|
|
|
'.fst': 'image/vnd.fst',
|
|
|
'.ftc': 'application/vnd.fluxtime.clip',
|
|
|
'.fti': 'application/vnd.anser-web-funds-transfer-initiation',
|
|
|
'.fun': 'text/x-standardml',
|
|
|
'.fvt': 'video/vnd.fvt',
|
|
|
'.fxp': 'application/vnd.adobe.fxp',
|
|
|
'.fxpl': 'application/vnd.adobe.fxp',
|
|
|
'.fy': 'text/x-fancysrc',
|
|
|
'.fzs': 'application/vnd.fuzzysheet',
|
|
|
'.g2w': 'application/vnd.geoplan',
|
|
|
'.g3': 'image/g3fax',
|
|
|
'.g3w': 'application/vnd.geospace',
|
|
|
'.gac': 'application/vnd.groove-account',
|
|
|
'.gdc': 'text/x-gooddata-cl',
|
|
|
'.gdl': 'model/vnd.gdl',
|
|
|
'.gemspec': 'text/x-ruby',
|
|
|
'.geo': 'application/vnd.dynageo',
|
|
|
'.gex': 'application/vnd.geometry-explorer',
|
|
|
'.ggb': 'application/vnd.geogebra.file',
|
|
|
'.ggt': 'application/vnd.geogebra.tool',
|
|
|
'.ghf': 'application/vnd.groove-help',
|
|
|
'.gif': 'image/gif',
|
|
|
'.gim': 'application/vnd.groove-identity-message',
|
|
|
'.gmx': 'application/vnd.gmx',
|
|
|
'.gnumeric': 'application/x-gnumeric',
|
|
|
'.go': 'text/x-gosrc',
|
|
|
'.gph': 'application/vnd.flographit',
|
|
|
'.gqf': 'application/vnd.grafeq',
|
|
|
'.gqs': 'application/vnd.grafeq',
|
|
|
'.gram': 'application/srgs',
|
|
|
'.gre': 'application/vnd.geometry-explorer',
|
|
|
'.groovy': 'text/x-groovy',
|
|
|
'.grv': 'application/vnd.groove-injector',
|
|
|
'.grxml': 'application/srgs+xml',
|
|
|
'.gs': 'text/x-gosu',
|
|
|
'.gsf': 'application/x-font-ghostscript',
|
|
|
'.gsp': 'text/x-gosu',
|
|
|
'.gst': 'text/x-gosu-template',
|
|
|
'.gsx': 'text/x-gosu',
|
|
|
'.gtar': 'application/x-gtar',
|
|
|
'.gtm': 'application/vnd.groove-tool-message',
|
|
|
'.gtw': 'model/vnd.gtw',
|
|
|
'.gv': 'text/vnd.graphviz',
|
|
|
'.gxt': 'application/vnd.geonext',
|
|
|
'.h': 'text/x-c',
|
|
|
'.h++': 'text/x-c++hdr',
|
|
|
'.h261': 'video/h261',
|
|
|
'.h263': 'video/h263',
|
|
|
'.h264': 'video/h264',
|
|
|
'.hal': 'application/vnd.hal+xml',
|
|
|
'.haml': 'text/x-haml',
|
|
|
'.hbci': 'application/vnd.hbci',
|
|
|
'.hdf': 'application/x-hdf',
|
|
|
'.hdp': 'text/x-dylan-lid',
|
|
|
'.hh': 'text/x-c',
|
|
|
'.hlp': 'application/winhlp',
|
|
|
'.hpgl': 'application/vnd.hp-hpgl',
|
|
|
'.hpid': 'application/vnd.hp-hpid',
|
|
|
'.hpp': 'text/x-c++hdr',
|
|
|
'.hps': 'application/vnd.hp-hps',
|
|
|
'.hqx': 'application/mac-binhex40',
|
|
|
'.hrl': 'text/x-erlang',
|
|
|
'.hs': 'text/x-haskell',
|
|
|
'.htke': 'application/vnd.kenameaapp',
|
|
|
'.htm': 'text/html',
|
|
|
'.html': 'text/html',
|
|
|
'.hvd': 'application/vnd.yamaha.hv-dic',
|
|
|
'.hvp': 'application/vnd.yamaha.hv-voice',
|
|
|
'.hvs': 'application/vnd.yamaha.hv-script',
|
|
|
'.hx': 'text/haxe',
|
|
|
'.hxx': 'text/x-c++hdr',
|
|
|
'.hy': 'text/x-hybris',
|
|
|
'.hyb': 'text/x-hybris',
|
|
|
'.i2g': 'application/vnd.intergeo',
|
|
|
'.icc': 'application/vnd.iccprofile',
|
|
|
'.ice': 'x-conference/x-cooltalk',
|
|
|
'.icm': 'application/vnd.iccprofile',
|
|
|
'.ico': 'image/x-icon',
|
|
|
'.ics': 'text/calendar',
|
|
|
'.idc': 'text/x-chdr',
|
|
|
'.ief': 'image/ief',
|
|
|
'.ifb': 'text/calendar',
|
|
|
'.ifm': 'application/vnd.shana.informed.formdata',
|
|
|
'.iges': 'model/iges',
|
|
|
'.igl': 'application/vnd.igloader',
|
|
|
'.igm': 'application/vnd.insors.igm',
|
|
|
'.igs': 'model/iges',
|
|
|
'.igx': 'application/vnd.micrografx.igx',
|
|
|
'.iif': 'application/vnd.shana.informed.interchange',
|
|
|
'.ik': 'text/x-iokesrc',
|
|
|
'.imp': 'application/vnd.accpac.simply.imp',
|
|
|
'.ims': 'application/vnd.ms-ims',
|
|
|
'.in': 'text/plain',
|
|
|
'.inc': 'text/x-povray',
|
|
|
'.ini': 'text/x-ini',
|
|
|
'.intr': 'text/x-dylan',
|
|
|
'.io': 'text/x-iosrc',
|
|
|
'.ipfix': 'application/ipfix',
|
|
|
'.ipk': 'application/vnd.shana.informed.package',
|
|
|
'.irm': 'application/vnd.ibm.rights-management',
|
|
|
'.irp': 'application/vnd.irepository.package+xml',
|
|
|
'.iso': 'application/octet-stream',
|
|
|
'.itp': 'application/vnd.shana.informed.formtemplate',
|
|
|
'.ivp': 'application/vnd.immervision-ivp',
|
|
|
'.ivu': 'application/vnd.immervision-ivu',
|
|
|
'.j': 'text/x-objective-j',
|
|
|
'.jad': 'text/vnd.sun.j2me.app-descriptor',
|
|
|
'.jade': 'text/x-jade',
|
|
|
'.jam': 'application/vnd.jam',
|
|
|
'.jar': 'application/java-archive',
|
|
|
'.java': 'text/x-java-source',
|
|
|
'.jbst': 'text/x-duel',
|
|
|
'.jisp': 'application/vnd.jisp',
|
|
|
'.jl': 'text/x-julia',
|
|
|
'.jlt': 'application/vnd.hp-jlyt',
|
|
|
'.jnlp': 'application/x-java-jnlp-file',
|
|
|
'.joda': 'application/vnd.joost.joda-archive',
|
|
|
'.jp2': 'image/jp2',
|
|
|
'.jpe': 'image/jpeg',
|
|
|
'.jpeg': 'image/jpeg',
|
|
|
'.jpg': 'image/jpeg',
|
|
|
'.jpgm': 'video/jpm',
|
|
|
'.jpgv': 'video/jpeg',
|
|
|
'.jpm': 'video/jpm',
|
|
|
'.js': 'application/javascript',
|
|
|
'.json': 'application/json',
|
|
|
'.jsp': 'application/x-jsp',
|
|
|
'.kar': 'audio/midi',
|
|
|
'.karbon': 'application/vnd.kde.karbon',
|
|
|
'.kfo': 'application/vnd.kde.kformula',
|
|
|
'.kia': 'application/vnd.kidspiration',
|
|
|
'.kid': 'application/x-genshi',
|
|
|
'.kk': 'text/x-koka',
|
|
|
'.kki': 'text/x-koka',
|
|
|
'.kml': 'application/vnd.google-earth.kml+xml',
|
|
|
'.kmz': 'application/vnd.google-earth.kmz',
|
|
|
'.kne': 'application/vnd.kinar',
|
|
|
'.knp': 'application/vnd.kinar',
|
|
|
'.kon': 'application/vnd.kde.kontour',
|
|
|
'.kpr': 'application/vnd.kde.kpresenter',
|
|
|
'.kpt': 'application/vnd.kde.kpresenter',
|
|
|
'.ksh': 'text/plain',
|
|
|
'.ksp': 'application/vnd.kde.kspread',
|
|
|
'.kt': 'text/x-kotlin',
|
|
|
'.ktr': 'application/vnd.kahootz',
|
|
|
'.ktx': 'image/ktx',
|
|
|
'.ktz': 'application/vnd.kahootz',
|
|
|
'.kwd': 'application/vnd.kde.kword',
|
|
|
'.kwt': 'application/vnd.kde.kword',
|
|
|
'.lasso': 'text/x-lasso',
|
|
|
'.lasso[89]': 'text/x-lasso',
|
|
|
'.lasxml': 'application/vnd.las.las+xml',
|
|
|
'.latex': 'application/x-latex',
|
|
|
'.lbd': 'application/vnd.llamagraphics.life-balance.desktop',
|
|
|
'.lbe': 'application/vnd.llamagraphics.life-balance.exchange+xml',
|
|
|
'.les': 'application/vnd.hhe.lesson-player',
|
|
|
'.less': 'text/x-less',
|
|
|
'.lgt': 'text/x-logtalk',
|
|
|
'.lha': 'application/octet-stream',
|
|
|
'.lhs': 'text/x-literate-haskell',
|
|
|
'.lid': 'text/x-dylan-lid',
|
|
|
'.link66': 'application/vnd.route66.link66+xml',
|
|
|
'.lisp': 'text/x-common-lisp',
|
|
|
'.list': 'text/plain',
|
|
|
'.list3820': 'application/vnd.ibm.modcap',
|
|
|
'.listafp': 'application/vnd.ibm.modcap',
|
|
|
'.ll': 'text/x-llvm',
|
|
|
'.log': 'text/plain',
|
|
|
'.lostxml': 'application/lost+xml',
|
|
|
'.lrf': 'application/octet-stream',
|
|
|
'.lrm': 'application/vnd.ms-lrm',
|
|
|
'.ls': 'text/x-livescript',
|
|
|
'.lsp': 'text/x-newlisp',
|
|
|
'.ltf': 'application/vnd.frogans.ltf',
|
|
|
'.ltx': 'text/x-latex',
|
|
|
'.lua': 'text/x-lua',
|
|
|
'.lvp': 'audio/vnd.lucent.voice',
|
|
|
'.lwp': 'application/vnd.lotus-wordpro',
|
|
|
'.lzh': 'application/octet-stream',
|
|
|
'.m': 'text/octave',
|
|
|
'.m13': 'application/x-msmediaview',
|
|
|
'.m14': 'application/x-msmediaview',
|
|
|
'.m1v': 'video/mpeg',
|
|
|
'.m21': 'application/mp21',
|
|
|
'.m2a': 'audio/mpeg',
|
|
|
'.m2v': 'video/mpeg',
|
|
|
'.m3a': 'audio/mpeg',
|
|
|
'.m3u': 'audio/x-mpegurl',
|
|
|
'.m3u8': 'application/x-mpegurl',
|
|
|
'.m4a': 'audio/mp4a-latm',
|
|
|
'.m4p': 'audio/mp4a-latm',
|
|
|
'.m4u': 'video/vnd.mpegurl',
|
|
|
'.m4v': 'video/x-m4v',
|
|
|
'.ma': 'application/mathematica',
|
|
|
'.mac': 'image/x-macpaint',
|
|
|
'.mads': 'application/mads+xml',
|
|
|
'.mag': 'application/vnd.ecowin.chart',
|
|
|
'.mak': 'text/x-makefile',
|
|
|
'.maker': 'application/vnd.framemaker',
|
|
|
'.mako': 'application/x-mako',
|
|
|
'.man': 'text/troff',
|
|
|
'.manifest': 'text/cache-manifest',
|
|
|
'.maql': 'text/x-gooddata-maql',
|
|
|
'.markdown': 'text/x-markdown',
|
|
|
'.mathml': 'application/mathml+xml',
|
|
|
'.mb': 'application/mathematica',
|
|
|
'.mbk': 'application/vnd.mobius.mbk',
|
|
|
'.mbox': 'application/mbox',
|
|
|
'.mc': 'application/x-mason',
|
|
|
'.mc1': 'application/vnd.medcalcdata',
|
|
|
'.mcd': 'application/vnd.mcd',
|
|
|
'.mcurl': 'text/vnd.curl.mcurl',
|
|
|
'.md': 'text/x-minidsrc',
|
|
|
'.mdb': 'application/x-msaccess',
|
|
|
'.mdi': 'image/vnd.ms-modi',
|
|
|
'.mdown': 'text/x-markdown',
|
|
|
'.me': 'text/troff',
|
|
|
'.mesh': 'model/mesh',
|
|
|
'.meta4': 'application/metalink4+xml',
|
|
|
'.mets': 'application/mets+xml',
|
|
|
'.mfm': 'application/vnd.mfmp',
|
|
|
'.mgp': 'application/vnd.osgeo.mapguide.package',
|
|
|
'.mgz': 'application/vnd.proteus.magazine',
|
|
|
'.mht': 'message/rfc822',
|
|
|
'.mhtml': 'message/rfc822',
|
|
|
'.mi': 'application/x-mason',
|
|
|
'.mid': 'audio/midi',
|
|
|
'.midi': 'audio/midi',
|
|
|
'.mif': 'application/vnd.mif',
|
|
|
'.mime': 'message/rfc822',
|
|
|
'.mj2': 'video/mj2',
|
|
|
'.mjp2': 'video/mj2',
|
|
|
'.ml': 'text/x-ocaml',
|
|
|
'.mli': 'text/x-ocaml',
|
|
|
'.mll': 'text/x-ocaml',
|
|
|
'.mlp': 'application/vnd.dolby.mlp',
|
|
|
'.mly': 'text/x-ocaml',
|
|
|
'.mm': 'text/x-objective-c++',
|
|
|
'.mmd': 'application/vnd.chipnuts.karaoke-mmd',
|
|
|
'.mmf': 'application/vnd.smaf',
|
|
|
'.mmr': 'image/vnd.fujixerox.edmics-mmr',
|
|
|
'.mny': 'application/x-msmoney',
|
|
|
'.mo': 'text/x-modelica',
|
|
|
'.mobi': 'application/x-mobipocket-ebook',
|
|
|
'.mobipocket-ebook': 'application/octet-stream',
|
|
|
'.mod': 'text/x-modula2',
|
|
|
'.mods': 'application/mods+xml',
|
|
|
'.monkey': 'text/x-monkey',
|
|
|
'.moo': 'text/x-moocode',
|
|
|
'.moon': 'text/x-moonscript',
|
|
|
'.mov': 'video/quicktime',
|
|
|
'.movie': 'video/x-sgi-movie',
|
|
|
'.mp2': 'audio/mpeg',
|
|
|
'.mp21': 'application/mp21',
|
|
|
'.mp2a': 'audio/mpeg',
|
|
|
'.mp3': 'audio/mpeg',
|
|
|
'.mp4': 'video/mp4',
|
|
|
'.mp4a': 'audio/mp4',
|
|
|
'.mp4s': 'application/mp4',
|
|
|
'.mp4v': 'video/mp4',
|
|
|
'.mpa': 'video/mpeg',
|
|
|
'.mpc': 'application/vnd.mophun.certificate',
|
|
|
'.mpe': 'video/mpeg',
|
|
|
'.mpeg': 'video/mpeg',
|
|
|
'.mpg': 'video/mpeg',
|
|
|
'.mpg4': 'video/mp4',
|
|
|
'.mpga': 'audio/mpeg',
|
|
|
'.mpkg': 'application/vnd.apple.installer+xml',
|
|
|
'.mpm': 'application/vnd.blueice.multipass',
|
|
|
'.mpn': 'application/vnd.mophun.application',
|
|
|
'.mpp': 'application/vnd.ms-project',
|
|
|
'.mpt': 'application/vnd.ms-project',
|
|
|
'.mpy': 'application/vnd.ibm.minipay',
|
|
|
'.mqy': 'application/vnd.mobius.mqy',
|
|
|
'.mrc': 'application/marc',
|
|
|
'.mrcx': 'application/marcxml+xml',
|
|
|
'.ms': 'text/troff',
|
|
|
'.mscml': 'application/mediaservercontrol+xml',
|
|
|
'.mseed': 'application/vnd.fdsn.mseed',
|
|
|
'.mseq': 'application/vnd.mseq',
|
|
|
'.msf': 'application/vnd.epson.msf',
|
|
|
'.msh': 'model/mesh',
|
|
|
'.msi': 'application/x-msdownload',
|
|
|
'.msl': 'application/vnd.mobius.msl',
|
|
|
'.msty': 'application/vnd.muvee.style',
|
|
|
'.mts': 'model/vnd.mts',
|
|
|
'.mus': 'application/vnd.musician',
|
|
|
'.musicxml': 'application/vnd.recordare.musicxml+xml',
|
|
|
'.mvb': 'application/x-msmediaview',
|
|
|
'.mwf': 'application/vnd.mfer',
|
|
|
'.mxf': 'application/mxf',
|
|
|
'.mxl': 'application/vnd.recordare.musicxml',
|
|
|
'.mxml': 'application/xv+xml',
|
|
|
'.mxs': 'application/vnd.triscape.mxs',
|
|
|
'.mxu': 'video/vnd.mpegurl',
|
|
|
'.myt': 'application/x-myghty',
|
|
|
'.n': 'text/x-nemerle',
|
|
|
'.n-gage': 'application/vnd.nokia.n-gage.symbian.install',
|
|
|
'.n3': 'text/n3',
|
|
|
'.nb': 'application/mathematica',
|
|
|
'.nbp': 'application/vnd.wolfram.player',
|
|
|
'.nc': 'application/x-netcdf',
|
|
|
'.ncx': 'application/x-dtbncx+xml',
|
|
|
'.ngdat': 'application/vnd.nokia.n-gage.data',
|
|
|
'.nim': 'text/x-nimrod',
|
|
|
'.nimrod': 'text/x-nimrod',
|
|
|
'.nl': 'text/x-newlisp',
|
|
|
'.nlu': 'application/vnd.neurolanguage.nlu',
|
|
|
'.nml': 'application/vnd.enliven',
|
|
|
'.nnd': 'application/vnd.noblenet-directory',
|
|
|
'.nns': 'application/vnd.noblenet-sealer',
|
|
|
'.nnw': 'application/vnd.noblenet-web',
|
|
|
'.npx': 'image/vnd.net-fpx',
|
|
|
'.ns2': 'text/x-newspeak',
|
|
|
'.nsf': 'application/vnd.lotus-notes',
|
|
|
'.nsh': 'text/x-nsis',
|
|
|
'.nsi': 'text/x-nsis',
|
|
|
'.nws': 'message/rfc822',
|
|
|
'.o': 'application/octet-stream',
|
|
|
'.oa2': 'application/vnd.fujitsu.oasys2',
|
|
|
'.oa3': 'application/vnd.fujitsu.oasys3',
|
|
|
'.oas': 'application/vnd.fujitsu.oasys',
|
|
|
'.obd': 'application/x-msbinder',
|
|
|
'.obj': 'application/octet-stream',
|
|
|
'.objdump': 'text/x-objdump',
|
|
|
'.oda': 'application/oda',
|
|
|
'.odb': 'application/vnd.oasis.opendocument.database',
|
|
|
'.odc': 'application/vnd.oasis.opendocument.chart',
|
|
|
'.odf': 'application/vnd.oasis.opendocument.formula',
|
|
|
'.odft': 'application/vnd.oasis.opendocument.formula-template',
|
|
|
'.odg': 'application/vnd.oasis.opendocument.graphics',
|
|
|
'.odi': 'application/vnd.oasis.opendocument.image',
|
|
|
'.odm': 'application/vnd.oasis.opendocument.text-master',
|
|
|
'.odp': 'application/vnd.oasis.opendocument.presentation',
|
|
|
'.ods': 'application/vnd.oasis.opendocument.spreadsheet',
|
|
|
'.odt': 'application/vnd.oasis.opendocument.text',
|
|
|
'.oga': 'audio/ogg',
|
|
|
'.ogg': 'audio/ogg',
|
|
|
'.ogv': 'video/ogg',
|
|
|
'.ogx': 'application/ogg',
|
|
|
'.onepkg': 'application/onenote',
|
|
|
'.onetmp': 'application/onenote',
|
|
|
'.onetoc': 'application/onenote',
|
|
|
'.onetoc2': 'application/onenote',
|
|
|
'.ooc': 'text/x-ooc',
|
|
|
'.opa': 'text/x-opa',
|
|
|
'.opf': 'application/oebps-package+xml',
|
|
|
'.oprc': 'application/vnd.palm',
|
|
|
'.org': 'application/vnd.lotus-organizer',
|
|
|
'.osf': 'application/vnd.yamaha.openscoreformat',
|
|
|
'.osfpvg': 'application/vnd.yamaha.openscoreformat.osfpvg+xml',
|
|
|
'.otc': 'application/vnd.oasis.opendocument.chart-template',
|
|
|
'.otf': 'application/x-font-otf',
|
|
|
'.otg': 'application/vnd.oasis.opendocument.graphics-template',
|
|
|
'.oth': 'application/vnd.oasis.opendocument.text-web',
|
|
|
'.oti': 'application/vnd.oasis.opendocument.image-template',
|
|
|
'.otp': 'application/vnd.oasis.opendocument.presentation-template',
|
|
|
'.ots': 'application/vnd.oasis.opendocument.spreadsheet-template',
|
|
|
'.ott': 'application/vnd.oasis.opendocument.text-template',
|
|
|
'.oxt': 'application/vnd.openofficeorg.extension',
|
|
|
'.p': 'text/x-pascal',
|
|
|
'.p10': 'application/pkcs10',
|
|
|
'.p12': 'application/x-pkcs12',
|
|
|
'.p7b': 'application/x-pkcs7-certificates',
|
|
|
'.p7c': 'application/pkcs7-mime',
|
|
|
'.p7m': 'application/pkcs7-mime',
|
|
|
'.p7r': 'application/x-pkcs7-certreqresp',
|
|
|
'.p7s': 'application/pkcs7-signature',
|
|
|
'.p8': 'application/pkcs8',
|
|
|
'.pas': 'text/x-pascal',
|
|
|
'.patch': 'text/x-diff',
|
|
|
'.paw': 'application/vnd.pawaafile',
|
|
|
'.pbd': 'application/vnd.powerbuilder6',
|
|
|
'.pbm': 'image/x-portable-bitmap',
|
|
|
'.pcf': 'application/x-font-pcf',
|
|
|
'.pcl': 'application/vnd.hp-pcl',
|
|
|
'.pclxl': 'application/vnd.hp-pclxl',
|
|
|
'.pct': 'image/x-pict',
|
|
|
'.pcurl': 'application/vnd.curl.pcurl',
|
|
|
'.pcx': 'image/x-pcx',
|
|
|
'.pdb': 'application/vnd.palm',
|
|
|
'.pdf': 'application/pdf',
|
|
|
'.pfa': 'application/x-font-type1',
|
|
|
'.pfb': 'application/x-font-type1',
|
|
|
'.pfm': 'application/x-font-type1',
|
|
|
'.pfr': 'application/font-tdpfr',
|
|
|
'.pfx': 'application/x-pkcs12',
|
|
|
'.pgm': 'image/x-portable-graymap',
|
|
|
'.pgn': 'application/x-chess-pgn',
|
|
|
'.pgp': 'application/pgp-encrypted',
|
|
|
'.php': 'text/x-php',
|
|
|
'.php[345]': 'text/x-php',
|
|
|
'.phtml': 'application/x-php',
|
|
|
'.pic': 'image/x-pict',
|
|
|
'.pict': 'image/pict',
|
|
|
'.pkg': 'application/octet-stream',
|
|
|
'.pki': 'application/pkixcmp',
|
|
|
'.pkipath': 'application/pkix-pkipath',
|
|
|
'.pl': 'text/plain',
|
|
|
'.plb': 'application/vnd.3gpp.pic-bw-large',
|
|
|
'.plc': 'application/vnd.mobius.plc',
|
|
|
'.plf': 'application/vnd.pocketlearn',
|
|
|
'.plot': 'text/x-gnuplot',
|
|
|
'.pls': 'application/pls+xml',
|
|
|
'.plt': 'text/x-gnuplot',
|
|
|
'.pm': 'text/x-perl',
|
|
|
'.pml': 'application/vnd.ctc-posml',
|
|
|
'.png': 'image/png',
|
|
|
'.pnm': 'image/x-portable-anymap',
|
|
|
'.pnt': 'image/x-macpaint',
|
|
|
'.pntg': 'image/x-macpaint',
|
|
|
'.po': 'application/x-gettext',
|
|
|
'.portpkg': 'application/vnd.macports.portpkg',
|
|
|
'.pot': 'application/vnd.ms-powerpoint',
|
|
|
'.potm': 'application/vnd.ms-powerpoint.template.macroenabled.12',
|
|
|
'.potx': 'application/vnd.openxmlformats-officedocument.presentationml.template',
|
|
|
'.pov': 'text/x-povray',
|
|
|
'.ppa': 'application/vnd.ms-powerpoint',
|
|
|
'.ppam': 'application/vnd.ms-powerpoint.addin.macroenabled.12',
|
|
|
'.ppd': 'application/vnd.cups-ppd',
|
|
|
'.ppm': 'image/x-portable-pixmap',
|
|
|
'.pps': 'application/vnd.ms-powerpoint',
|
|
|
'.ppsm': 'application/vnd.ms-powerpoint.slideshow.macroenabled.12',
|
|
|
'.ppsx': 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
|
|
|
'.ppt': 'application/vnd.ms-powerpoint',
|
|
|
'.pptm': 'application/vnd.ms-powerpoint.presentation.macroenabled.12',
|
|
|
'.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
|
|
|
'.pqa': 'application/vnd.palm',
|
|
|
'.prc': 'application/x-mobipocket-ebook',
|
|
|
'.pre': 'application/vnd.lotus-freelance',
|
|
|
'.prf': 'application/pics-rules',
|
|
|
'.pro': 'text/idl',
|
|
|
'.prolog': 'text/x-prolog',
|
|
|
'.properties': 'text/x-properties',
|
|
|
'.ps': 'application/postscript',
|
|
|
'.ps1': 'text/x-powershell',
|
|
|
'.psb': 'application/vnd.3gpp.pic-bw-small',
|
|
|
'.psd': 'image/vnd.adobe.photoshop',
|
|
|
'.psf': 'application/x-font-linux-psf',
|
|
|
'.pskcxml': 'application/pskc+xml',
|
|
|
'.ptid': 'application/vnd.pvi.ptid1',
|
|
|
'.pub': 'application/x-mspublisher',
|
|
|
'.pvb': 'application/vnd.3gpp.pic-bw-var',
|
|
|
'.pwn': 'application/vnd.3m.post-it-notes',
|
|
|
'.pwz': 'application/vnd.ms-powerpoint',
|
|
|
'.pxd': 'text/x-cython',
|
|
|
'.pxi': 'text/x-cython',
|
|
|
'.py': 'text/x-python',
|
|
|
'.py3tb': 'text/x-python3-traceback',
|
|
|
'.pya': 'audio/vnd.ms-playready.media.pya',
|
|
|
'.pyc': 'application/x-python-code',
|
|
|
'.pyo': 'application/x-python-code',
|
|
|
'.pypylog': 'application/x-pypylog',
|
|
|
'.pytb': 'text/x-python-traceback',
|
|
|
'.pyv': 'video/vnd.ms-playready.media.pyv',
|
|
|
'.pyw': 'text/x-python',
|
|
|
'.pyx': 'text/x-cython',
|
|
|
'.qam': 'application/vnd.epson.quickanime',
|
|
|
'.qbo': 'application/vnd.intu.qbo',
|
|
|
'.qfx': 'application/vnd.intu.qfx',
|
|
|
'.qml': 'application/x-qml',
|
|
|
'.qps': 'application/vnd.publishare-delta-tree',
|
|
|
'.qt': 'video/quicktime',
|
|
|
'.qti': 'image/x-quicktime',
|
|
|
'.qtif': 'image/x-quicktime',
|
|
|
'.qwd': 'application/vnd.quark.quarkxpress',
|
|
|
'.qwt': 'application/vnd.quark.quarkxpress',
|
|
|
'.qxb': 'application/vnd.quark.quarkxpress',
|
|
|
'.qxd': 'application/vnd.quark.quarkxpress',
|
|
|
'.qxl': 'application/vnd.quark.quarkxpress',
|
|
|
'.qxt': 'application/vnd.quark.quarkxpress',
|
|
|
'.r': 'text/x-rebol',
|
|
|
'.r3': 'text/x-rebol',
|
|
|
'.ra': 'audio/x-pn-realaudio',
|
|
|
'.rake': 'text/x-ruby',
|
|
|
'.ram': 'audio/x-pn-realaudio',
|
|
|
'.rar': 'application/x-rar-compressed',
|
|
|
'.ras': 'image/x-cmu-raster',
|
|
|
'.rb': 'text/x-ruby',
|
|
|
'.rbw': 'text/x-ruby',
|
|
|
'.rbx': 'text/x-ruby',
|
|
|
'.rc': 'text/x-stsrc',
|
|
|
'.rcprofile': 'application/vnd.ipunplugged.rcprofile',
|
|
|
'.rdf': 'application/rdf+xml',
|
|
|
'.rdz': 'application/vnd.data-vision.rdz',
|
|
|
'.reg': 'text/x-windows-registry',
|
|
|
'.rep': 'application/vnd.businessobjects',
|
|
|
'.res': 'application/x-dtbresource+xml',
|
|
|
'.rest': 'text/x-rst',
|
|
|
'.rgb': 'image/x-rgb',
|
|
|
'.rhtml': 'text/html+ruby',
|
|
|
'.rif': 'application/reginfo+xml',
|
|
|
'.rip': 'audio/vnd.rip',
|
|
|
'.rkt': 'text/x-racket',
|
|
|
'.rktl': 'text/x-racket',
|
|
|
'.rl': 'application/resource-lists+xml',
|
|
|
'.rlc': 'image/vnd.fujixerox.edmics-rlc',
|
|
|
'.rld': 'application/resource-lists-diff+xml',
|
|
|
'.rm': 'application/vnd.rn-realmedia',
|
|
|
'.rmi': 'audio/midi',
|
|
|
'.rmp': 'audio/x-pn-realaudio-plugin',
|
|
|
'.rms': 'application/vnd.jcp.javame.midlet-rms',
|
|
|
'.rnc': 'application/relax-ng-compact-syntax',
|
|
|
'.robot': 'text/x-robotframework',
|
|
|
'.roff': 'text/troff',
|
|
|
'.rp9': 'application/vnd.cloanto.rp9',
|
|
|
'.rpss': 'application/vnd.nokia.radio-presets',
|
|
|
'.rpst': 'application/vnd.nokia.radio-preset',
|
|
|
'.rq': 'application/sparql-query',
|
|
|
'.rs': 'application/rls-services+xml',
|
|
|
'.rsd': 'application/rsd+xml',
|
|
|
'.rss': 'application/rss+xml',
|
|
|
'.rst': 'text/x-rst',
|
|
|
'.rtf': 'application/rtf',
|
|
|
'.rtx': 'text/richtext',
|
|
|
'.s': 'text/x-asm',
|
|
|
'.saf': 'application/vnd.yamaha.smaf-audio',
|
|
|
'.sage': 'text/x-python',
|
|
|
'.sass': 'text/x-sass',
|
|
|
'.sbml': 'application/sbml+xml',
|
|
|
'.sc': 'application/vnd.ibm.secure-container',
|
|
|
'.scala': 'text/x-scala',
|
|
|
'.scaml': 'text/x-scaml',
|
|
|
'.scd': 'application/x-msschedule',
|
|
|
'.sce': 'text/scilab',
|
|
|
'.sci': 'text/scilab',
|
|
|
'.scm': 'application/vnd.lotus-screencam',
|
|
|
'.scq': 'application/scvp-cv-request',
|
|
|
'.scs': 'application/scvp-cv-response',
|
|
|
'.scss': 'text/x-scss',
|
|
|
'.scurl': 'text/vnd.curl.scurl',
|
|
|
'.sda': 'application/vnd.stardivision.draw',
|
|
|
'.sdc': 'application/vnd.stardivision.calc',
|
|
|
'.sdd': 'application/vnd.stardivision.impress',
|
|
|
'.sdkd': 'application/vnd.solent.sdkm+xml',
|
|
|
'.sdkm': 'application/vnd.solent.sdkm+xml',
|
|
|
'.sdp': 'application/sdp',
|
|
|
'.sdw': 'application/vnd.stardivision.writer',
|
|
|
'.see': 'application/vnd.seemail',
|
|
|
'.seed': 'application/vnd.fdsn.seed',
|
|
|
'.sema': 'application/vnd.sema',
|
|
|
'.semd': 'application/vnd.semd',
|
|
|
'.semf': 'application/vnd.semf',
|
|
|
'.ser': 'application/java-serialized-object',
|
|
|
'.setpay': 'application/set-payment-initiation',
|
|
|
'.setreg': 'application/set-registration-initiation',
|
|
|
'.sfd-hdstx': 'application/vnd.hydrostatix.sof-data',
|
|
|
'.sfs': 'application/vnd.spotfire.sfs',
|
|
|
'.sgl': 'application/vnd.stardivision.writer-global',
|
|
|
'.sgm': 'text/sgml',
|
|
|
'.sgml': 'text/sgml',
|
|
|
'.sh': 'application/x-sh',
|
|
|
'.sh-session': 'application/x-shell-session',
|
|
|
'.shar': 'application/x-shar',
|
|
|
'.shell-session': 'application/x-sh-session',
|
|
|
'.shf': 'application/shf+xml',
|
|
|
'.sig': 'application/pgp-signature',
|
|
|
'.silo': 'model/mesh',
|
|
|
'.sis': 'application/vnd.symbian.install',
|
|
|
'.sisx': 'application/vnd.symbian.install',
|
|
|
'.sit': 'application/x-stuffit',
|
|
|
'.sitx': 'application/x-stuffitx',
|
|
|
'.skd': 'application/vnd.koan',
|
|
|
'.skm': 'application/vnd.koan',
|
|
|
'.skp': 'application/vnd.koan',
|
|
|
'.skt': 'application/vnd.koan',
|
|
|
'.sldm': 'application/vnd.ms-powerpoint.slide.macroenabled.12',
|
|
|
'.sldx': 'application/vnd.openxmlformats-officedocument.presentationml.slide',
|
|
|
'.slt': 'application/vnd.epson.salt',
|
|
|
'.sm': 'application/vnd.stepmania.stepchart',
|
|
|
'.smali': 'text/smali',
|
|
|
'.smf': 'application/vnd.stardivision.math',
|
|
|
'.smi': 'application/smil+xml',
|
|
|
'.smil': 'application/smil+xml',
|
|
|
'.sml': 'text/x-standardml',
|
|
|
'.snd': 'audio/basic',
|
|
|
'.snf': 'application/x-font-snf',
|
|
|
'.snobol': 'text/x-snobol',
|
|
|
'.so': 'application/octet-stream',
|
|
|
'.sp': 'text/x-sourcepawn',
|
|
|
'.spc': 'application/x-pkcs7-certificates',
|
|
|
'.spec': 'text/x-rpm-spec',
|
|
|
'.spf': 'application/vnd.yamaha.smaf-phrase',
|
|
|
'.spl': 'application/x-futuresplash',
|
|
|
'.spot': 'text/vnd.in3d.spot',
|
|
|
'.spp': 'application/scvp-vp-response',
|
|
|
'.spq': 'application/scvp-vp-request',
|
|
|
'.spt': 'application/x-cheetah',
|
|
|
'.spx': 'audio/ogg',
|
|
|
'.sql': 'text/x-sql',
|
|
|
'.sqlite3-console': 'text/x-sqlite3-console',
|
|
|
'.src': 'application/x-wais-source',
|
|
|
'.sru': 'application/sru+xml',
|
|
|
'.srx': 'application/sparql-results+xml',
|
|
|
'.ss': 'text/x-scheme',
|
|
|
'.sse': 'application/vnd.kodak-descriptor',
|
|
|
'.ssf': 'application/vnd.epson.ssf',
|
|
|
'.ssml': 'application/ssml+xml',
|
|
|
'.ssp': 'application/x-ssp',
|
|
|
'.st': 'application/vnd.sailingtracker.track',
|
|
|
'.stc': 'application/vnd.sun.xml.calc.template',
|
|
|
'.std': 'application/vnd.sun.xml.draw.template',
|
|
|
'.stf': 'application/vnd.wt.stf',
|
|
|
'.sti': 'application/vnd.sun.xml.impress.template',
|
|
|
'.stk': 'application/hyperstudio',
|
|
|
'.stl': 'application/vnd.ms-pki.stl',
|
|
|
'.str': 'application/vnd.pg.format',
|
|
|
'.stw': 'application/vnd.sun.xml.writer.template',
|
|
|
'.sub': 'image/vnd.dvb.subtitle',
|
|
|
'.sus': 'application/vnd.sus-calendar',
|
|
|
'.susp': 'application/vnd.sus-calendar',
|
|
|
'.sv': 'text/x-systemverilog',
|
|
|
'.sv4cpio': 'application/x-sv4cpio',
|
|
|
'.sv4crc': 'application/x-sv4crc',
|
|
|
'.svc': 'application/vnd.dvb.service',
|
|
|
'.svd': 'application/vnd.svd',
|
|
|
'.svg': 'image/svg+xml',
|
|
|
'.svgz': 'image/svg+xml',
|
|
|
'.svh': 'text/x-systemverilog',
|
|
|
'.swa': 'application/x-director',
|
|
|
'.swf': 'application/x-shockwave-flash',
|
|
|
'.swi': 'application/vnd.aristanetworks.swi',
|
|
|
'.sxc': 'application/vnd.sun.xml.calc',
|
|
|
'.sxd': 'application/vnd.sun.xml.draw',
|
|
|
'.sxg': 'application/vnd.sun.xml.writer.global',
|
|
|
'.sxi': 'application/vnd.sun.xml.impress',
|
|
|
'.sxm': 'application/vnd.sun.xml.math',
|
|
|
'.sxw': 'application/vnd.sun.xml.writer',
|
|
|
'.t': 'text/troff',
|
|
|
'.tac': 'text/x-python',
|
|
|
'.tao': 'application/vnd.tao.intent-module-archive',
|
|
|
'.tar': 'application/x-tar',
|
|
|
'.tcap': 'application/vnd.3gpp2.tcap',
|
|
|
'.tcl': 'application/x-tcl',
|
|
|
'.tcsh': 'application/x-csh',
|
|
|
'.tea': 'text/x-tea',
|
|
|
'.teacher': 'application/vnd.smart.teacher',
|
|
|
'.tei': 'application/tei+xml',
|
|
|
'.teicorpus': 'application/tei+xml',
|
|
|
'.tex': 'application/x-tex',
|
|
|
'.texi': 'application/x-texinfo',
|
|
|
'.texinfo': 'application/x-texinfo',
|
|
|
'.text': 'text/plain',
|
|
|
'.tfi': 'application/thraud+xml',
|
|
|
'.tfm': 'application/x-tex-tfm',
|
|
|
'.thmx': 'application/vnd.ms-officetheme',
|
|
|
'.tif': 'image/tiff',
|
|
|
'.tiff': 'image/tiff',
|
|
|
'.tmo': 'application/vnd.tmobile-livetv',
|
|
|
'.tmpl': 'application/x-cheetah',
|
|
|
'.toc': 'text/x-tex',
|
|
|
'.torrent': 'application/x-bittorrent',
|
|
|
'.tpl': 'application/vnd.groove-tool-template',
|
|
|
'.tpt': 'application/vnd.trid.tpt',
|
|
|
'.tr': 'text/troff',
|
|
|
'.tra': 'application/vnd.trueapp',
|
|
|
'.trm': 'application/x-msterminal',
|
|
|
'.ts': 'video/mp2t',
|
|
|
'.tsd': 'application/timestamped-data',
|
|
|
'.tst': 'text/scilab',
|
|
|
'.tsv': 'text/tab-separated-values',
|
|
|
'.ttc': 'application/x-font-ttf',
|
|
|
'.ttf': 'application/x-font-ttf',
|
|
|
'.ttl': 'text/turtle',
|
|
|
'.twd': 'application/vnd.simtech-mindmapper',
|
|
|
'.twds': 'application/vnd.simtech-mindmapper',
|
|
|
'.txd': 'application/vnd.genomatix.tuxedo',
|
|
|
'.txf': 'application/vnd.mobius.txf',
|
|
|
'.txt': 'text/plain',
|
|
|
'.u': 'application/x-urbiscript',
|
|
|
'.u32': 'application/x-authorware-bin',
|
|
|
'.udeb': 'application/x-debian-package',
|
|
|
'.ufd': 'application/vnd.ufdl',
|
|
|
'.ufdl': 'application/vnd.ufdl',
|
|
|
'.umj': 'application/vnd.umajin',
|
|
|
'.unityweb': 'application/vnd.unity',
|
|
|
'.uoml': 'application/vnd.uoml+xml',
|
|
|
'.uri': 'text/uri-list',
|
|
|
'.uris': 'text/uri-list',
|
|
|
'.urls': 'text/uri-list',
|
|
|
'.ustar': 'application/x-ustar',
|
|
|
'.utz': 'application/vnd.uiq.theme',
|
|
|
'.uu': 'text/x-uuencode',
|
|
|
'.uva': 'audio/vnd.dece.audio',
|
|
|
'.uvd': 'application/vnd.dece.data',
|
|
|
'.uvf': 'application/vnd.dece.data',
|
|
|
'.uvg': 'image/vnd.dece.graphic',
|
|
|
'.uvh': 'video/vnd.dece.hd',
|
|
|
'.uvi': 'image/vnd.dece.graphic',
|
|
|
'.uvm': 'video/vnd.dece.mobile',
|
|
|
'.uvp': 'video/vnd.dece.pd',
|
|
|
'.uvs': 'video/vnd.dece.sd',
|
|
|
'.uvt': 'application/vnd.dece.ttml+xml',
|
|
|
'.uvu': 'video/vnd.uvvu.mp4',
|
|
|
'.uvv': 'video/vnd.dece.video',
|
|
|
'.uvva': 'audio/vnd.dece.audio',
|
|
|
'.uvvd': 'application/vnd.dece.data',
|
|
|
'.uvvf': 'application/vnd.dece.data',
|
|
|
'.uvvg': 'image/vnd.dece.graphic',
|
|
|
'.uvvh': 'video/vnd.dece.hd',
|
|
|
'.uvvi': 'image/vnd.dece.graphic',
|
|
|
'.uvvm': 'video/vnd.dece.mobile',
|
|
|
'.uvvp': 'video/vnd.dece.pd',
|
|
|
'.uvvs': 'video/vnd.dece.sd',
|
|
|
'.uvvt': 'application/vnd.dece.ttml+xml',
|
|
|
'.uvvu': 'video/vnd.uvvu.mp4',
|
|
|
'.uvvv': 'video/vnd.dece.video',
|
|
|
'.uvvx': 'application/vnd.dece.unspecified',
|
|
|
'.uvx': 'application/vnd.dece.unspecified',
|
|
|
'.v': 'text/x-verilog',
|
|
|
'.vala': 'text/x-vala',
|
|
|
'.vapi': 'text/x-vala',
|
|
|
'.vark': 'text/x-gosu',
|
|
|
'.vb': 'text/vbscript',
|
|
|
'.vcd': 'application/x-cdlink',
|
|
|
'.vcf': 'text/x-vcard',
|
|
|
'.vcg': 'application/vnd.groove-vcard',
|
|
|
'.vcs': 'text/x-vcalendar',
|
|
|
'.vcx': 'application/vnd.vcx',
|
|
|
'.vert': 'text/x-glslsrc',
|
|
|
'.vhd': 'text/x-vhdl',
|
|
|
'.vhdl': 'text/x-vhdl',
|
|
|
'.vim': 'text/x-vim',
|
|
|
'.vis': 'application/vnd.visionary',
|
|
|
'.viv': 'video/vnd.vivo',
|
|
|
'.vor': 'application/vnd.stardivision.writer',
|
|
|
'.vox': 'application/x-authorware-bin',
|
|
|
'.vrml': 'model/vrml',
|
|
|
'.vsd': 'application/vnd.visio',
|
|
|
'.vsf': 'application/vnd.vsf',
|
|
|
'.vss': 'application/vnd.visio',
|
|
|
'.vst': 'application/vnd.visio',
|
|
|
'.vsw': 'application/vnd.visio',
|
|
|
'.vtu': 'model/vnd.vtu',
|
|
|
'.vxml': 'application/voicexml+xml',
|
|
|
'.w3d': 'application/x-director',
|
|
|
'.wad': 'application/x-doom',
|
|
|
'.wav': 'audio/x-wav',
|
|
|
'.wax': 'audio/x-ms-wax',
|
|
|
'.wbmp': 'image/vnd.wap.wbmp',
|
|
|
'.wbs': 'application/vnd.criticaltools.wbs+xml',
|
|
|
'.wbxml': 'application/vnd.wap.wbxml',
|
|
|
'.wcm': 'application/vnd.ms-works',
|
|
|
'.wdb': 'application/vnd.ms-works',
|
|
|
'.weba': 'audio/webm',
|
|
|
'.webm': 'video/webm',
|
|
|
'.webp': 'image/webp',
|
|
|
'.weechatlog': 'text/x-irclog',
|
|
|
'.wg': 'application/vnd.pmi.widget',
|
|
|
'.wgt': 'application/widget',
|
|
|
'.wiz': 'application/msword',
|
|
|
'.wks': 'application/vnd.ms-works',
|
|
|
'.wlua': 'text/x-lua',
|
|
|
'.wm': 'video/x-ms-wm',
|
|
|
'.wma': 'audio/x-ms-wma',
|
|
|
'.wmd': 'application/x-ms-wmd',
|
|
|
'.wmf': 'application/x-msmetafile',
|
|
|
'.wml': 'text/vnd.wap.wml',
|
|
|
'.wmlc': 'application/vnd.wap.wmlc',
|
|
|
'.wmls': 'text/vnd.wap.wmlscript',
|
|
|
'.wmlsc': 'application/vnd.wap.wmlscriptc',
|
|
|
'.wmv': 'video/x-ms-wmv',
|
|
|
'.wmx': 'video/x-ms-wmx',
|
|
|
'.wmz': 'application/x-ms-wmz',
|
|
|
'.woff': 'application/x-font-woff',
|
|
|
'.wpd': 'application/vnd.wordperfect',
|
|
|
'.wpl': 'application/vnd.ms-wpl',
|
|
|
'.wps': 'application/vnd.ms-works',
|
|
|
'.wqd': 'application/vnd.wqd',
|
|
|
'.wri': 'application/x-mswrite',
|
|
|
'.wrl': 'model/vrml',
|
|
|
'.wsdl': 'application/wsdl+xml',
|
|
|
'.wspolicy': 'application/wspolicy+xml',
|
|
|
'.wtb': 'application/vnd.webturbo',
|
|
|
'.wvx': 'video/x-ms-wvx',
|
|
|
'.x': 'text/x-logos',
|
|
|
'.x32': 'application/x-authorware-bin',
|
|
|
'.x3d': 'application/vnd.hzn-3d-crossword',
|
|
|
'.xap': 'application/x-silverlight-app',
|
|
|
'.xar': 'application/vnd.xara',
|
|
|
'.xbap': 'application/x-ms-xbap',
|
|
|
'.xbd': 'application/vnd.fujixerox.docuworks.binder',
|
|
|
'.xbm': 'image/x-xbitmap',
|
|
|
'.xdf': 'application/xcap-diff+xml',
|
|
|
'.xdm': 'application/vnd.syncml.dm+xml',
|
|
|
'.xdp': 'application/vnd.adobe.xdp+xml',
|
|
|
'.xdssc': 'application/dssc+xml',
|
|
|
'.xdw': 'application/vnd.fujixerox.docuworks',
|
|
|
'.xenc': 'application/xenc+xml',
|
|
|
'.xer': 'application/patch-ops-error+xml',
|
|
|
'.xfdf': 'application/vnd.adobe.xfdf',
|
|
|
'.xfdl': 'application/vnd.xfdl',
|
|
|
'.xht': 'application/xhtml+xml',
|
|
|
'.xhtml': 'application/xhtml+xml',
|
|
|
'.xhvml': 'application/xv+xml',
|
|
|
'.xi': 'text/x-logos',
|
|
|
'.xif': 'image/vnd.xiff',
|
|
|
'.xla': 'application/vnd.ms-excel',
|
|
|
'.xlam': 'application/vnd.ms-excel.addin.macroenabled.12',
|
|
|
'.xlb': 'application/vnd.ms-excel',
|
|
|
'.xlc': 'application/vnd.ms-excel',
|
|
|
'.xlm': 'application/vnd.ms-excel',
|
|
|
'.xls': 'application/vnd.ms-excel',
|
|
|
'.xlsb': 'application/vnd.ms-excel.sheet.binary.macroenabled.12',
|
|
|
'.xlsm': 'application/vnd.ms-excel.sheet.macroenabled.12',
|
|
|
'.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
|
'.xlt': 'application/vnd.ms-excel',
|
|
|
'.xltm': 'application/vnd.ms-excel.template.macroenabled.12',
|
|
|
'.xltx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
|
|
|
'.xlw': 'application/vnd.ms-excel',
|
|
|
'.xm': 'text/x-logos',
|
|
|
'.xmi': 'text/x-logos',
|
|
|
'.xml': 'application/xml',
|
|
|
'.xo': 'application/vnd.olpc-sugar',
|
|
|
'.xop': 'application/xop+xml',
|
|
|
'.xpdl': 'application/xml',
|
|
|
'.xpi': 'application/x-xpinstall',
|
|
|
'.xpl': 'application/xsl+xml',
|
|
|
'.xpm': 'image/x-xpixmap',
|
|
|
'.xpr': 'application/vnd.is-xpr',
|
|
|
'.xps': 'application/vnd.ms-xpsdocument',
|
|
|
'.xpw': 'application/vnd.intercon.formnet',
|
|
|
'.xpx': 'application/vnd.intercon.formnet',
|
|
|
'.xq': 'application/xquery',
|
|
|
'.xql': 'application/xquery',
|
|
|
'.xqm': 'application/xquery',
|
|
|
'.xquery': 'application/xquery',
|
|
|
'.xqy': 'application/xquery',
|
|
|
'.xsd': 'application/xml',
|
|
|
'.xsl': 'application/xml',
|
|
|
'.xslt': 'application/xslt+xml',
|
|
|
'.xsm': 'application/vnd.syncml+xml',
|
|
|
'.xspf': 'application/xspf+xml',
|
|
|
'.xtend': 'text/x-xtend',
|
|
|
'.xul': 'application/vnd.mozilla.xul+xml',
|
|
|
'.xvm': 'application/xv+xml',
|
|
|
'.xvml': 'application/xv+xml',
|
|
|
'.xwd': 'image/x-xwindowdump',
|
|
|
'.xyz': 'chemical/x-xyz',
|
|
|
'.yaml': 'text/x-yaml',
|
|
|
'.yang': 'application/yang',
|
|
|
'.yin': 'application/yin+xml',
|
|
|
'.yml': 'text/x-yaml',
|
|
|
'.zaz': 'application/vnd.zzazz.deck+xml',
|
|
|
'.zip': 'application/zip',
|
|
|
'.zir': 'application/vnd.zul',
|
|
|
'.zirz': 'application/vnd.zul',
|
|
|
'.zmm': 'application/vnd.handheld-entertainment+xml'}
|
|
|
]
|
|
|
|
|
|
|
|
|
def get_mimetypes_db(extra_types=None):
|
|
|
import mimetypes
|
|
|
types_map = TYPES_MAP
|
|
|
if extra_types:
|
|
|
types_map = TYPES_MAP[::] # copy the initial version for extending
|
|
|
types_map[1].update(extra_types)
|
|
|
db = mimetypes.MimeTypes()
|
|
|
db.types_map = types_map
|
|
|
db.encodings_map.update(DEFAULTS['encodings_map'])
|
|
|
db.suffix_map.update(DEFAULTS['suffix_map'])
|
|
|
return db
|
|
|
|