|
|
|
|
@@ -0,0 +1,521 @@
|
|
|
|
|
#
|
|
|
|
|
#
|
|
|
|
|
# Nimrod's Runtime Library
|
|
|
|
|
# (c) Copyright 2012 Dominik Picheta
|
|
|
|
|
#
|
|
|
|
|
# See the file "copying.txt", included in this
|
|
|
|
|
# distribution, for details about the copyright.
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
## This module implements a mimetypes database
|
|
|
|
|
import strtabs
|
|
|
|
|
type
|
|
|
|
|
TMimeDB* = object
|
|
|
|
|
mimes: PStringTable
|
|
|
|
|
|
|
|
|
|
const mimes* = {
|
|
|
|
|
"ez": "application/andrew-inset",
|
|
|
|
|
"anx": "application/annodex",
|
|
|
|
|
"atom": "application/atom+xml",
|
|
|
|
|
"atomcat": "application/atomcat+xml",
|
|
|
|
|
"atomsrv": "application/atomserv+xml",
|
|
|
|
|
"lin": "application/bbolin",
|
|
|
|
|
"cap": "application/cap",
|
|
|
|
|
"pcap": "application/cap",
|
|
|
|
|
"cu": "application/cu-seeme",
|
|
|
|
|
"davmount": "application/davmount+xml",
|
|
|
|
|
"tsp": "application/dsptype",
|
|
|
|
|
"es": "application/ecmascript",
|
|
|
|
|
"spl": "application/futuresplash",
|
|
|
|
|
"hta": "application/hta",
|
|
|
|
|
"jar": "application/java-archive",
|
|
|
|
|
"ser": "application/java-serialized-object",
|
|
|
|
|
"class": "application/java-vm",
|
|
|
|
|
"js": "application/javascript",
|
|
|
|
|
"m3g": "application/m3g",
|
|
|
|
|
"hqx": "application/mac-binhex40",
|
|
|
|
|
"cpt": "application/mac-compactpro",
|
|
|
|
|
"nb": "application/mathematica",
|
|
|
|
|
"nbp": "application/mathematica",
|
|
|
|
|
"mdb": "application/msaccess",
|
|
|
|
|
"doc": "application/msword",
|
|
|
|
|
"dot": "application/msword",
|
|
|
|
|
"mxf": "application/mxf",
|
|
|
|
|
"bin": "application/octet-stream",
|
|
|
|
|
"oda": "application/oda",
|
|
|
|
|
"ogx": "application/ogg",
|
|
|
|
|
"pdf": "application/pdf",
|
|
|
|
|
"key": "application/pgp-keys",
|
|
|
|
|
"pgp": "application/pgp-signature",
|
|
|
|
|
"prf": "application/pics-rules",
|
|
|
|
|
"ps": "application/postscript",
|
|
|
|
|
"ai": "application/postscript",
|
|
|
|
|
"eps": "application/postscript",
|
|
|
|
|
"epsi": "application/postscript",
|
|
|
|
|
"epsf": "application/postscript",
|
|
|
|
|
"eps2": "application/postscript",
|
|
|
|
|
"eps3": "application/postscript",
|
|
|
|
|
"rar": "application/rar",
|
|
|
|
|
"rdf": "application/rdf+xml",
|
|
|
|
|
"rss": "application/rss+xml",
|
|
|
|
|
"rtf": "application/rtf",
|
|
|
|
|
"smi": "application/smil",
|
|
|
|
|
"smil": "application/smil",
|
|
|
|
|
"xhtml": "application/xhtml+xml",
|
|
|
|
|
"xht": "application/xhtml+xml",
|
|
|
|
|
"xml": "application/xml",
|
|
|
|
|
"xsl": "application/xml",
|
|
|
|
|
"xsd": "application/xml",
|
|
|
|
|
"xspf": "application/xspf+xml",
|
|
|
|
|
"zip": "application/zip",
|
|
|
|
|
"apk": "application/vnd.android.package-archive",
|
|
|
|
|
"cdy": "application/vnd.cinderella",
|
|
|
|
|
"kml": "application/vnd.google-earth.kml+xml",
|
|
|
|
|
"kmz": "application/vnd.google-earth.kmz",
|
|
|
|
|
"xul": "application/vnd.mozilla.xul+xml",
|
|
|
|
|
"xls": "application/vnd.ms-excel",
|
|
|
|
|
"xlb": "application/vnd.ms-excel",
|
|
|
|
|
"xlt": "application/vnd.ms-excel",
|
|
|
|
|
"cat": "application/vnd.ms-pki.seccat",
|
|
|
|
|
"stl": "application/vnd.ms-pki.stl",
|
|
|
|
|
"ppt": "application/vnd.ms-powerpoint",
|
|
|
|
|
"pps": "application/vnd.ms-powerpoint",
|
|
|
|
|
"xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
|
|
|
"xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
|
|
|
|
|
"pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
|
|
|
"ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
|
|
|
|
|
"potx": "application/vnd.openxmlformats-officedocument.presentationml.template",
|
|
|
|
|
"docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
|
|
|
|
"dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
|
|
|
|
|
"cod": "application/vnd.rim.cod",
|
|
|
|
|
"mmf": "application/vnd.smaf",
|
|
|
|
|
"sis": "application/vnd.symbian.install",
|
|
|
|
|
"vsd": "application/vnd.visio",
|
|
|
|
|
"wbxml": "application/vnd.wap.wbxml",
|
|
|
|
|
"wmlc": "application/vnd.wap.wmlc",
|
|
|
|
|
"wmlsc": "application/vnd.wap.wmlscriptc",
|
|
|
|
|
"wpd": "application/vnd.wordperfect",
|
|
|
|
|
"wp5": "application/vnd.wordperfect5.1",
|
|
|
|
|
"wk": "application/x-123",
|
|
|
|
|
"7z": "application/x-7z-compressed",
|
|
|
|
|
"abw": "application/x-abiword",
|
|
|
|
|
"dmg": "application/x-apple-diskimage",
|
|
|
|
|
"bcpio": "application/x-bcpio",
|
|
|
|
|
"torrent": "application/x-bittorrent",
|
|
|
|
|
"cab": "application/x-cab",
|
|
|
|
|
"cbr": "application/x-cbr",
|
|
|
|
|
"cbz": "application/x-cbz",
|
|
|
|
|
"cdf": "application/x-cdf",
|
|
|
|
|
"cda": "application/x-cdf",
|
|
|
|
|
"vcd": "application/x-cdlink",
|
|
|
|
|
"pgn": "application/x-chess-pgn",
|
|
|
|
|
"cpio": "application/x-cpio",
|
|
|
|
|
"csh": "application/x-csh",
|
|
|
|
|
"deb": "application/x-debian-package",
|
|
|
|
|
"udeb": "application/x-debian-package",
|
|
|
|
|
"dcr": "application/x-director",
|
|
|
|
|
"dir": "application/x-director",
|
|
|
|
|
"dxr": "application/x-director",
|
|
|
|
|
"dms": "application/x-dms",
|
|
|
|
|
"wad": "application/x-doom",
|
|
|
|
|
"dvi": "application/x-dvi",
|
|
|
|
|
"rhtml": "application/x-httpd-eruby",
|
|
|
|
|
"pfa": "application/x-font",
|
|
|
|
|
"pfb": "application/x-font",
|
|
|
|
|
"gsf": "application/x-font",
|
|
|
|
|
"pcf": "application/x-font",
|
|
|
|
|
"pcf.Z": "application/x-font",
|
|
|
|
|
"mm": "application/x-freemind",
|
|
|
|
|
"spl": "application/x-futuresplash",
|
|
|
|
|
"gnumeric": "application/x-gnumeric",
|
|
|
|
|
"sgf": "application/x-go-sgf",
|
|
|
|
|
"gcf": "application/x-graphing-calculator",
|
|
|
|
|
"gtar": "application/x-gtar",
|
|
|
|
|
"tgz": "application/x-gtar",
|
|
|
|
|
"taz": "application/x-gtar",
|
|
|
|
|
"hdf": "application/x-hdf",
|
|
|
|
|
"phtml": "application/x-httpd-php",
|
|
|
|
|
"pht": "application/x-httpd-php",
|
|
|
|
|
"php": "application/x-httpd-php",
|
|
|
|
|
"phps": "application/x-httpd-php-source",
|
|
|
|
|
"php3": "application/x-httpd-php3",
|
|
|
|
|
"php3p": "application/x-httpd-php3-preprocessed",
|
|
|
|
|
"php4": "application/x-httpd-php4",
|
|
|
|
|
"php5": "application/x-httpd-php5",
|
|
|
|
|
"ica": "application/x-ica",
|
|
|
|
|
"info": "application/x-info",
|
|
|
|
|
"ins": "application/x-internet-signup",
|
|
|
|
|
"isp": "application/x-internet-signup",
|
|
|
|
|
"iii": "application/x-iphone",
|
|
|
|
|
"iso": "application/x-iso9660-image",
|
|
|
|
|
"jam": "application/x-jam",
|
|
|
|
|
"jnlp": "application/x-java-jnlp-file",
|
|
|
|
|
"jmz": "application/x-jmol",
|
|
|
|
|
"chrt": "application/x-kchart",
|
|
|
|
|
"kil": "application/x-killustrator",
|
|
|
|
|
"skp": "application/x-koan",
|
|
|
|
|
"skd": "application/x-koan",
|
|
|
|
|
"skt": "application/x-koan",
|
|
|
|
|
"skm": "application/x-koan",
|
|
|
|
|
"kpr": "application/x-kpresenter",
|
|
|
|
|
"kpt": "application/x-kpresenter",
|
|
|
|
|
"ksp": "application/x-kspread",
|
|
|
|
|
"kwd": "application/x-kword",
|
|
|
|
|
"kwt": "application/x-kword",
|
|
|
|
|
"latex": "application/x-latex",
|
|
|
|
|
"lha": "application/x-lha",
|
|
|
|
|
"lyx": "application/x-lyx",
|
|
|
|
|
"lzh": "application/x-lzh",
|
|
|
|
|
"lzx": "application/x-lzx",
|
|
|
|
|
"frm": "application/x-maker",
|
|
|
|
|
"maker": "application/x-maker",
|
|
|
|
|
"frame": "application/x-maker",
|
|
|
|
|
"fm": "application/x-maker",
|
|
|
|
|
"fb": "application/x-maker",
|
|
|
|
|
"book": "application/x-maker",
|
|
|
|
|
"fbdoc": "application/x-maker",
|
|
|
|
|
"mif": "application/x-mif",
|
|
|
|
|
"wmd": "application/x-ms-wmd",
|
|
|
|
|
"wmz": "application/x-ms-wmz",
|
|
|
|
|
"com": "application/x-msdos-program",
|
|
|
|
|
"exe": "application/x-msdos-program",
|
|
|
|
|
"bat": "application/x-msdos-program",
|
|
|
|
|
"dll": "application/x-msdos-program",
|
|
|
|
|
"msi": "application/x-msi",
|
|
|
|
|
"nc": "application/x-netcdf",
|
|
|
|
|
"pac": "application/x-ns-proxy-autoconfig",
|
|
|
|
|
"dat": "application/x-ns-proxy-autoconfig",
|
|
|
|
|
"nwc": "application/x-nwc",
|
|
|
|
|
"o": "application/x-object",
|
|
|
|
|
"oza": "application/x-oz-application",
|
|
|
|
|
"p7r": "application/x-pkcs7-certreqresp",
|
|
|
|
|
"crl": "application/x-pkcs7-crl",
|
|
|
|
|
"pyc": "application/x-python-code",
|
|
|
|
|
"pyo": "application/x-python-code",
|
|
|
|
|
"qgs": "application/x-qgis",
|
|
|
|
|
"shp": "application/x-qgis",
|
|
|
|
|
"shx": "application/x-qgis",
|
|
|
|
|
"qtl": "application/x-quicktimeplayer",
|
|
|
|
|
"rpm": "application/x-redhat-package-manager",
|
|
|
|
|
"rb": "application/x-ruby",
|
|
|
|
|
"sh": "application/x-sh",
|
|
|
|
|
"shar": "application/x-shar",
|
|
|
|
|
"swf": "application/x-shockwave-flash",
|
|
|
|
|
"swfl": "application/x-shockwave-flash",
|
|
|
|
|
"scr": "application/x-silverlight",
|
|
|
|
|
"sit": "application/x-stuffit",
|
|
|
|
|
"sitx": "application/x-stuffit",
|
|
|
|
|
"sv4cpio": "application/x-sv4cpio",
|
|
|
|
|
"sv4crc": "application/x-sv4crc",
|
|
|
|
|
"tar": "application/x-tar",
|
|
|
|
|
"tcl": "application/x-tcl",
|
|
|
|
|
"gf": "application/x-tex-gf",
|
|
|
|
|
"pk": "application/x-tex-pk",
|
|
|
|
|
"texinfo": "application/x-texinfo",
|
|
|
|
|
"texi": "application/x-texinfo",
|
|
|
|
|
"~": "application/x-trash",
|
|
|
|
|
"%": "application/x-trash",
|
|
|
|
|
"bak": "application/x-trash",
|
|
|
|
|
"old": "application/x-trash",
|
|
|
|
|
"sik": "application/x-trash",
|
|
|
|
|
"t": "application/x-troff",
|
|
|
|
|
"tr": "application/x-troff",
|
|
|
|
|
"roff": "application/x-troff",
|
|
|
|
|
"man": "application/x-troff-man",
|
|
|
|
|
"me": "application/x-troff-me",
|
|
|
|
|
"ms": "application/x-troff-ms",
|
|
|
|
|
"ustar": "application/x-ustar",
|
|
|
|
|
"src": "application/x-wais-source",
|
|
|
|
|
"wz": "application/x-wingz",
|
|
|
|
|
"crt": "application/x-x509-ca-cert",
|
|
|
|
|
"xcf": "application/x-xcf",
|
|
|
|
|
"fig": "application/x-xfig",
|
|
|
|
|
"xpi": "application/x-xpinstall",
|
|
|
|
|
"amr": "audio/amr",
|
|
|
|
|
"awb": "audio/amr-wb",
|
|
|
|
|
"amr": "audio/amr",
|
|
|
|
|
"awb": "audio/amr-wb",
|
|
|
|
|
"axa": "audio/annodex",
|
|
|
|
|
"au": "audio/basic",
|
|
|
|
|
"snd": "audio/basic",
|
|
|
|
|
"flac": "audio/flac",
|
|
|
|
|
"mid": "audio/midi",
|
|
|
|
|
"midi": "audio/midi",
|
|
|
|
|
"kar": "audio/midi",
|
|
|
|
|
"mpga": "audio/mpeg",
|
|
|
|
|
"mpega": "audio/mpeg",
|
|
|
|
|
"mp2": "audio/mpeg",
|
|
|
|
|
"mp3": "audio/mpeg",
|
|
|
|
|
"m4a": "audio/mpeg",
|
|
|
|
|
"m3u": "audio/mpegurl",
|
|
|
|
|
"oga": "audio/ogg",
|
|
|
|
|
"ogg": "audio/ogg",
|
|
|
|
|
"spx": "audio/ogg",
|
|
|
|
|
"sid": "audio/prs.sid",
|
|
|
|
|
"aif": "audio/x-aiff",
|
|
|
|
|
"aiff": "audio/x-aiff",
|
|
|
|
|
"aifc": "audio/x-aiff",
|
|
|
|
|
"gsm": "audio/x-gsm",
|
|
|
|
|
"m3u": "audio/x-mpegurl",
|
|
|
|
|
"wma": "audio/x-ms-wma",
|
|
|
|
|
"wax": "audio/x-ms-wax",
|
|
|
|
|
"ra": "audio/x-pn-realaudio",
|
|
|
|
|
"rm": "audio/x-pn-realaudio",
|
|
|
|
|
"ram": "audio/x-pn-realaudio",
|
|
|
|
|
"ra": "audio/x-realaudio",
|
|
|
|
|
"pls": "audio/x-scpls",
|
|
|
|
|
"sd2": "audio/x-sd2",
|
|
|
|
|
"wav": "audio/x-wav",
|
|
|
|
|
"alc": "chemical/x-alchemy",
|
|
|
|
|
"cac": "chemical/x-cache",
|
|
|
|
|
"cache": "chemical/x-cache",
|
|
|
|
|
"csf": "chemical/x-cache-csf",
|
|
|
|
|
"cbin": "chemical/x-cactvs-binary",
|
|
|
|
|
"cascii": "chemical/x-cactvs-binary",
|
|
|
|
|
"ctab": "chemical/x-cactvs-binary",
|
|
|
|
|
"cdx": "chemical/x-cdx",
|
|
|
|
|
"cer": "chemical/x-cerius",
|
|
|
|
|
"c3d": "chemical/x-chem3d",
|
|
|
|
|
"chm": "chemical/x-chemdraw",
|
|
|
|
|
"cif": "chemical/x-cif",
|
|
|
|
|
"cmdf": "chemical/x-cmdf",
|
|
|
|
|
"cml": "chemical/x-cml",
|
|
|
|
|
"cpa": "chemical/x-compass",
|
|
|
|
|
"bsd": "chemical/x-crossfire",
|
|
|
|
|
"csml": "chemical/x-csml",
|
|
|
|
|
"csm": "chemical/x-csml",
|
|
|
|
|
"ctx": "chemical/x-ctx",
|
|
|
|
|
"cxf": "chemical/x-cxf",
|
|
|
|
|
"cef": "chemical/x-cxf",
|
|
|
|
|
"smi": "#chemical/x-daylight-smiles",
|
|
|
|
|
"emb": "chemical/x-embl-dl-nucleotide",
|
|
|
|
|
"embl": "chemical/x-embl-dl-nucleotide",
|
|
|
|
|
"spc": "chemical/x-galactic-spc",
|
|
|
|
|
"inp": "chemical/x-gamess-input",
|
|
|
|
|
"gam": "chemical/x-gamess-input",
|
|
|
|
|
"gamin": "chemical/x-gamess-input",
|
|
|
|
|
"fch": "chemical/x-gaussian-checkpoint",
|
|
|
|
|
"fchk": "chemical/x-gaussian-checkpoint",
|
|
|
|
|
"cub": "chemical/x-gaussian-cube",
|
|
|
|
|
"gau": "chemical/x-gaussian-input",
|
|
|
|
|
"gjc": "chemical/x-gaussian-input",
|
|
|
|
|
"gjf": "chemical/x-gaussian-input",
|
|
|
|
|
"gal": "chemical/x-gaussian-log",
|
|
|
|
|
"gcg": "chemical/x-gcg8-sequence",
|
|
|
|
|
"gen": "chemical/x-genbank",
|
|
|
|
|
"hin": "chemical/x-hin",
|
|
|
|
|
"istr": "chemical/x-isostar",
|
|
|
|
|
"ist": "chemical/x-isostar",
|
|
|
|
|
"jdx": "chemical/x-jcamp-dx",
|
|
|
|
|
"dx": "chemical/x-jcamp-dx",
|
|
|
|
|
"kin": "chemical/x-kinemage",
|
|
|
|
|
"mcm": "chemical/x-macmolecule",
|
|
|
|
|
"mmd": "chemical/x-macromodel-input",
|
|
|
|
|
"mmod": "chemical/x-macromodel-input",
|
|
|
|
|
"mol": "chemical/x-mdl-molfile",
|
|
|
|
|
"rd": "chemical/x-mdl-rdfile",
|
|
|
|
|
"rxn": "chemical/x-mdl-rxnfile",
|
|
|
|
|
"sd": "chemical/x-mdl-sdfile",
|
|
|
|
|
"sdf": "chemical/x-mdl-sdfile",
|
|
|
|
|
"tgf": "chemical/x-mdl-tgf",
|
|
|
|
|
"mif": "#chemical/x-mif",
|
|
|
|
|
"mcif": "chemical/x-mmcif",
|
|
|
|
|
"mol2": "chemical/x-mol2",
|
|
|
|
|
"b": "chemical/x-molconn-Z",
|
|
|
|
|
"gpt": "chemical/x-mopac-graph",
|
|
|
|
|
"mop": "chemical/x-mopac-input",
|
|
|
|
|
"mopcrt": "chemical/x-mopac-input",
|
|
|
|
|
"mpc": "chemical/x-mopac-input",
|
|
|
|
|
"zmt": "chemical/x-mopac-input",
|
|
|
|
|
"moo": "chemical/x-mopac-out",
|
|
|
|
|
"mvb": "chemical/x-mopac-vib",
|
|
|
|
|
"asn": "chemical/x-ncbi-asn1",
|
|
|
|
|
"prt": "chemical/x-ncbi-asn1-ascii",
|
|
|
|
|
"ent": "chemical/x-ncbi-asn1-ascii",
|
|
|
|
|
"val": "chemical/x-ncbi-asn1-binary",
|
|
|
|
|
"aso": "chemical/x-ncbi-asn1-binary",
|
|
|
|
|
"asn": "chemical/x-ncbi-asn1-spec",
|
|
|
|
|
"pdb": "chemical/x-pdb",
|
|
|
|
|
"ent": "chemical/x-pdb",
|
|
|
|
|
"ros": "chemical/x-rosdal",
|
|
|
|
|
"sw": "chemical/x-swissprot",
|
|
|
|
|
"vms": "chemical/x-vamas-iso14976",
|
|
|
|
|
"vmd": "chemical/x-vmd",
|
|
|
|
|
"xtel": "chemical/x-xtel",
|
|
|
|
|
"xyz": "chemical/x-xyz",
|
|
|
|
|
"gif": "image/gif",
|
|
|
|
|
"ief": "image/ief",
|
|
|
|
|
"jpeg": "image/jpeg",
|
|
|
|
|
"jpg": "image/jpeg",
|
|
|
|
|
"jpe": "image/jpeg",
|
|
|
|
|
"pcx": "image/pcx",
|
|
|
|
|
"png": "image/png",
|
|
|
|
|
"svg": "image/svg+xml",
|
|
|
|
|
"svgz": "image/svg+xml",
|
|
|
|
|
"tiff": "image/tiff",
|
|
|
|
|
"tif": "image/tiff",
|
|
|
|
|
"djvu": "image/vnd.djvu",
|
|
|
|
|
"djv": "image/vnd.djvu",
|
|
|
|
|
"wbmp": "image/vnd.wap.wbmp",
|
|
|
|
|
"cr2": "image/x-canon-cr2",
|
|
|
|
|
"crw": "image/x-canon-crw",
|
|
|
|
|
"ras": "image/x-cmu-raster",
|
|
|
|
|
"cdr": "image/x-coreldraw",
|
|
|
|
|
"pat": "image/x-coreldrawpattern",
|
|
|
|
|
"cdt": "image/x-coreldrawtemplate",
|
|
|
|
|
"cpt": "image/x-corelphotopaint",
|
|
|
|
|
"erf": "image/x-epson-erf",
|
|
|
|
|
"ico": "image/x-icon",
|
|
|
|
|
"art": "image/x-jg",
|
|
|
|
|
"jng": "image/x-jng",
|
|
|
|
|
"bmp": "image/x-ms-bmp",
|
|
|
|
|
"nef": "image/x-nikon-nef",
|
|
|
|
|
"orf": "image/x-olympus-orf",
|
|
|
|
|
"psd": "image/x-photoshop",
|
|
|
|
|
"pnm": "image/x-portable-anymap",
|
|
|
|
|
"pbm": "image/x-portable-bitmap",
|
|
|
|
|
"pgm": "image/x-portable-graymap",
|
|
|
|
|
"ppm": "image/x-portable-pixmap",
|
|
|
|
|
"rgb": "image/x-rgb",
|
|
|
|
|
"xbm": "image/x-xbitmap",
|
|
|
|
|
"xpm": "image/x-xpixmap",
|
|
|
|
|
"xwd": "image/x-xwindowdump",
|
|
|
|
|
"eml": "message/rfc822",
|
|
|
|
|
"igs": "model/iges",
|
|
|
|
|
"iges": "model/iges",
|
|
|
|
|
"msh": "model/mesh",
|
|
|
|
|
"mesh": "model/mesh",
|
|
|
|
|
"silo": "model/mesh",
|
|
|
|
|
"wrl": "model/vrml",
|
|
|
|
|
"vrml": "model/vrml",
|
|
|
|
|
"x3dv": "model/x3d+vrml",
|
|
|
|
|
"x3d": "model/x3d+xml",
|
|
|
|
|
"x3db": "model/x3d+binary",
|
|
|
|
|
"manifest": "text/cache-manifest",
|
|
|
|
|
"ics": "text/calendar",
|
|
|
|
|
"icz": "text/calendar",
|
|
|
|
|
"css": "text/css",
|
|
|
|
|
"csv": "text/csv",
|
|
|
|
|
"323": "text/h323",
|
|
|
|
|
"html": "text/html",
|
|
|
|
|
"htm": "text/html",
|
|
|
|
|
"shtml": "text/html",
|
|
|
|
|
"uls": "text/iuls",
|
|
|
|
|
"mml": "text/mathml",
|
|
|
|
|
"asc": "text/plain",
|
|
|
|
|
"txt": "text/plain",
|
|
|
|
|
"text": "text/plain",
|
|
|
|
|
"pot": "text/plain",
|
|
|
|
|
"brf": "text/plain",
|
|
|
|
|
"rtx": "text/richtext",
|
|
|
|
|
"sct": "text/scriptlet",
|
|
|
|
|
"wsc": "text/scriptlet",
|
|
|
|
|
"tm": "text/texmacs",
|
|
|
|
|
"ts": "text/texmacs",
|
|
|
|
|
"tsv": "text/tab-separated-values",
|
|
|
|
|
"jad": "text/vnd.sun.j2me.app-descriptor",
|
|
|
|
|
"wml": "text/vnd.wap.wml",
|
|
|
|
|
"wmls": "text/vnd.wap.wmlscript",
|
|
|
|
|
"bib": "text/x-bibtex",
|
|
|
|
|
"boo": "text/x-boo",
|
|
|
|
|
"h++": "text/x-c++hdr",
|
|
|
|
|
"hpp": "text/x-c++hdr",
|
|
|
|
|
"hxx": "text/x-c++hdr",
|
|
|
|
|
"hh": "text/x-c++hdr",
|
|
|
|
|
"c++": "text/x-c++src",
|
|
|
|
|
"cpp": "text/x-c++src",
|
|
|
|
|
"cxx": "text/x-c++src",
|
|
|
|
|
"cc": "text/x-c++src",
|
|
|
|
|
"h": "text/x-chdr",
|
|
|
|
|
"htc": "text/x-component",
|
|
|
|
|
"csh": "text/x-csh",
|
|
|
|
|
"c": "text/x-csrc",
|
|
|
|
|
"d": "text/x-dsrc",
|
|
|
|
|
"diff": "text/x-diff",
|
|
|
|
|
"patch": "text/x-diff",
|
|
|
|
|
"hs": "text/x-haskell",
|
|
|
|
|
"java": "text/x-java",
|
|
|
|
|
"lhs": "text/x-literate-haskell",
|
|
|
|
|
"moc": "text/x-moc",
|
|
|
|
|
"p": "text/x-pascal",
|
|
|
|
|
"pas": "text/x-pascal",
|
|
|
|
|
"gcd": "text/x-pcs-gcd",
|
|
|
|
|
"pl": "text/x-perl",
|
|
|
|
|
"pm": "text/x-perl",
|
|
|
|
|
"py": "text/x-python",
|
|
|
|
|
"scala": "text/x-scala",
|
|
|
|
|
"etx": "text/x-setext",
|
|
|
|
|
"sh": "text/x-sh",
|
|
|
|
|
"tcl": "text/x-tcl",
|
|
|
|
|
"tk": "text/x-tcl",
|
|
|
|
|
"tex": "text/x-tex",
|
|
|
|
|
"ltx": "text/x-tex",
|
|
|
|
|
"sty": "text/x-tex",
|
|
|
|
|
"cls": "text/x-tex",
|
|
|
|
|
"vcs": "text/x-vcalendar",
|
|
|
|
|
"vcf": "text/x-vcard",
|
|
|
|
|
"3gp": "video/3gpp",
|
|
|
|
|
"axv": "video/annodex",
|
|
|
|
|
"dl": "video/dl",
|
|
|
|
|
"dif": "video/dv",
|
|
|
|
|
"dv": "video/dv",
|
|
|
|
|
"fli": "video/fli",
|
|
|
|
|
"gl": "video/gl",
|
|
|
|
|
"mpeg": "video/mpeg",
|
|
|
|
|
"mpg": "video/mpeg",
|
|
|
|
|
"mpe": "video/mpeg",
|
|
|
|
|
"mp4": "video/mp4",
|
|
|
|
|
"qt": "video/quicktime",
|
|
|
|
|
"mov": "video/quicktime",
|
|
|
|
|
"ogv": "video/ogg",
|
|
|
|
|
"mxu": "video/vnd.mpegurl",
|
|
|
|
|
"flv": "video/x-flv",
|
|
|
|
|
"lsf": "video/x-la-asf",
|
|
|
|
|
"lsx": "video/x-la-asf",
|
|
|
|
|
"mng": "video/x-mng",
|
|
|
|
|
"asf": "video/x-ms-asf",
|
|
|
|
|
"asx": "video/x-ms-asf",
|
|
|
|
|
"wm": "video/x-ms-wm",
|
|
|
|
|
"wmv": "video/x-ms-wmv",
|
|
|
|
|
"wmx": "video/x-ms-wmx",
|
|
|
|
|
"wvx": "video/x-ms-wvx",
|
|
|
|
|
"avi": "video/x-msvideo",
|
|
|
|
|
"movie": "video/x-sgi-movie",
|
|
|
|
|
"mpv": "video/x-matroska",
|
|
|
|
|
"mkv": "video/x-matroska",
|
|
|
|
|
"ice": "x-conference/x-cooltalk",
|
|
|
|
|
"sisx": "x-epoc/x-sisx-app",
|
|
|
|
|
"vrm": "x-world/x-vrml",
|
|
|
|
|
"vrml": "x-world/x-vrml",
|
|
|
|
|
"wrl": "x-world/x-vrml"}
|
|
|
|
|
|
|
|
|
|
proc newMimetypes*(): TMimeDB =
|
|
|
|
|
## Creates a new Mimetypes database. The database will contain the most
|
|
|
|
|
## common mimetypes.
|
|
|
|
|
|
|
|
|
|
result.mimes = mimes.newStringTable()
|
|
|
|
|
|
|
|
|
|
proc getMimetype*(mimedb: TMimeDB, ext: string, default = "text/plain"): string =
|
|
|
|
|
## Gets mimetype which corresponds to ``ext``. Returns ``default`` if ``ext``
|
|
|
|
|
## could not be found.
|
|
|
|
|
result = mimedb.mimes[ext]
|
|
|
|
|
if result == "":
|
|
|
|
|
return default
|
|
|
|
|
|
|
|
|
|
proc getExt*(mimedb: TMimeDB, mimetype: string, default = "txt"): string =
|
|
|
|
|
## Gets extension which corresponds to ``mimetype``. Returns ``default`` if
|
|
|
|
|
## ``mimetype`` could not be found. Extensions are returned without the
|
|
|
|
|
## leading dot.
|
|
|
|
|
result = default
|
|
|
|
|
for e, m in mimedb.mimes:
|
|
|
|
|
if m == mimetype:
|
|
|
|
|
result = e
|
|
|
|
|
|
|
|
|
|
proc register*(mimedb: var TMimeDB, ext: string, mimetype: string) =
|
|
|
|
|
## Adds ``mimetype`` to the ``mimedb``.
|
|
|
|
|
mimedb.mimes[ext] = mimetype
|
|
|
|
|
|
|
|
|
|
when isMainModule:
|
|
|
|
|
var m = newMimetypes()
|
|
|
|
|
echo m.getMimetype("mp4")
|
|
|
|
|
echo m.getExt("text/html")
|