summaryrefslogtreecommitdiffstatshomepage
path: root/plugins/mime/init.lua
blob: ac41dad1cfc2848c85d432aa1b04daf3b880d78b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
local exports = {}
exports.name = "creationix/mime"
exports.version = "0.1.2-1"
exports.description = "A simple mime type database useful for serving static files over http."
exports.tags = {"mime", "static"}
exports.license = "MIT"
exports.author = { name = "Tim Caswell" }
exports.homepage = "https://github.com/creationix/weblit/blob/master/libs/mime.lua"

local mime = exports
local table = {
  ["3gp"] = "video/3gpp",
  a = "application/octet-stream",
  ai = "application/postscript",
  aif = "audio/x-aiff",
  aiff = "audio/x-aiff",
  asc = "application/pgp-signature",
  asf = "video/x-ms-asf",
  asm = "text/x-asm",
  asx = "video/x-ms-asf",
  atom = "application/atom+xml",
  au = "audio/basic",
  avi = "video/x-msvideo",
  bat = "application/x-msdownload",
  bin = "application/octet-stream",
  bmp = "image/bmp",
  bz2 = "application/x-bzip2",
  c = "text/x-c",
  cab = "application/vnd.ms-cab-compressed",
  cc = "text/x-c",
  chm = "application/vnd.ms-htmlhelp",
  class = "application/octet-stream",
  com = "application/x-msdownload",
  conf = "text/plain",
  cpp = "text/x-c",
  crt = "application/x-x509-ca-cert",
  css = "text/css",
  csv = "text/csv",
  cxx = "text/x-c",
  deb = "application/x-debian-package",
  der = "application/x-x509-ca-cert",
  diff = "text/x-diff",
  djv = "image/vnd.djvu",
  djvu = "image/vnd.djvu",
  dll = "application/x-msdownload",
  dmg = "application/octet-stream",
  doc = "application/msword",
  dot = "application/msword",
  dtd = "application/xml-dtd",
  dvi = "application/x-dvi",
  ear = "application/java-archive",
  eml = "message/rfc822",
  eps = "application/postscript",
  exe = "application/x-msdownload",
  f = "text/x-fortran",
  f77 = "text/x-fortran",
  f90 = "text/x-fortran",
  flv = "video/x-flv",
  ["for"] = "text/x-fortran",
  gem = "application/octet-stream",
  gemspec = "text/x-script.ruby",
  gif = "image/gif",
  gz = "application/x-gzip",
  h = "text/x-c",
  hh = "text/x-c",
  htm = "text/html",
  html = "text/html",
  ico = "image/vnd.microsoft.icon",
  ics = "text/calendar",
  ifb = "text/calendar",
  iso = "application/octet-stream",
  jar = "application/java-archive",
  java = "text/x-java-source",
  jnlp = "application/x-java-jnlp-file",
  jpeg = "image/jpeg",
  jpg = "image/jpeg",
  js = "application/javascript",
  json = "application/json",
  less = "text/css",
  log = "text/plain",
  lua = "text/x-lua",
  luac = "application/x-lua-bytecode",
  m3u = "audio/x-mpegurl",
  m4v = "video/mp4",
  man = "text/troff",
  manifest = "text/cache-manifest",
  markdown = "text/markdown",
  mathml = "application/mathml+xml",
  mbox = "application/mbox",
  mdoc = "text/troff",
  md = "text/markdown",
  me = "text/troff",
  mid = "audio/midi",
  midi = "audio/midi",
  mime = "message/rfc822",
  mml = "application/mathml+xml",
  mng = "video/x-mng",
  mov = "video/quicktime",
  mp3 = "audio/mpeg",
  mp4 = "video/mp4",
  mp4v = "video/mp4",
  mpeg = "video/mpeg",
  mpg = "video/mpeg",
  ms = "text/troff",
  msi = "application/x-msdownload",
  odp = "application/vnd.oasis.opendocument.presentation",
  ods = "application/vnd.oasis.opendocument.spreadsheet",
  odt = "application/vnd.oasis.opendocument.text",
  ogg = "application/ogg",
  p = "text/x-pascal",
  pas = "text/x-pascal",
  pbm = "image/x-portable-bitmap",
  pdf = "application/pdf",
  pem = "application/x-x509-ca-cert",
  pgm = "image/x-portable-graymap",
  pgp = "application/pgp-encrypted",
  pkg = "application/octet-stream",
  pl = "text/x-script.perl",
  pm = "text/x-script.perl-module",
  png = "image/png",
  pnm = "image/x-portable-anymap",
  ppm = "image/x-portable-pixmap",
  pps = "application/vnd.ms-powerpoint",
  ppt = "application/vnd.ms-powerpoint",
  ps = "application/postscript",
  psd = "image/vnd.adobe.photoshop",
  py = "text/x-script.python",
  qt = "video/quicktime",
  ra = "audio/x-pn-realaudio",
  rake = "text/x-script.ruby",
  ram = "audio/x-pn-realaudio",
  rar = "application/x-rar-compressed",
  rb = "text/x-script.ruby",
  rdf = "application/rdf+xml",
  roff = "text/troff",
  rpm = "application/x-redhat-package-manager",
  rss = "application/rss+xml",
  rtf = "application/rtf",
  ru = "text/x-script.ruby",
  s = "text/x-asm",
  sgm = "text/sgml",
  sgml = "text/sgml",
  sh = "application/x-sh",
  sig = "application/pgp-signature",
  snd = "audio/basic",
  so = "application/octet-stream",
  svg = "image/svg+xml",
  svgz = "image/svg+xml",
  swf = "application/x-shockwave-flash",
  t = "text/troff",
  tar = "application/x-tar",
  tbz = "application/x-bzip-compressed-tar",
  tci = "application/x-topcloud",
  tcl = "application/x-tcl",
  tex = "application/x-tex",
  texi = "application/x-texinfo",
  texinfo = "application/x-texinfo",
  text = "text/plain",
  tif = "image/tiff",
  tiff = "image/tiff",
  torrent = "application/x-bittorrent",
  tr = "text/troff",
  ttf = "application/x-font-ttf",
  txt = "text/plain",
  vcf = "text/x-vcard",
  vcs = "text/x-vcalendar",
  vrml = "model/vrml",
  war  = "application/java-archive",
  wav  = "audio/x-wav",
  webm = "video/webm",
  wma = "audio/x-ms-wma",
  wmv = "video/x-ms-wmv",
  wmx = "video/x-ms-wmx",
  wrl = "model/vrml",
  wsdl = "application/wsdl+xml",
  xbm = "image/x-xbitmap",
  xhtml = "application/xhtml+xml",
  xls = "application/vnd.ms-excel",
  xml = "application/xml",
  xpm = "image/x-xpixmap",
  xsl = "application/xml",
  xslt = "application/xslt+xml",
  yaml = "text/yaml",
  yml = "text/yaml",
  zip = "application/zip",
}
mime.table = table
mime.default = "application/octet-stream"

function mime.getType(path)
  return mime.table[path:lower():match("[^.]*$")] or mime.default
end

return mime