publicsenat.lua: Port Raphaƫl's v0.4.3 changes
[libquvi-scripts.git] / share / lua / util / content_type.lua
blobe907c52872c2db31b0349d5b8e607ee046bf0c35
1 -- libquvi-scripts
2 -- Copyright (C) 2012 Toni Gundogdu <legatvs@gmail.com>
3 --
4 -- This file is part of libquvi-scripts <http://quvi.sourceforge.net/>.
5 --
6 -- This library is free software; you can redistribute it and/or
7 -- modify it under the terms of the GNU Lesser General Public
8 -- License as published by the Free Software Foundation; either
9 -- version 2.1 of the License, or (at your option) any later version.
11 -- This library is distributed in the hope that it will be useful,
12 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
13 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 -- Lesser General Public License for more details.
16 -- You should have received a copy of the GNU Lesser General Public
17 -- License along with this library; if not, write to the Free Software
18 -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 -- 02110-1301 USA
22 function suffix_from_contenttype(c_type)
23 -- Hardcoded.
24 if c_type:match("audio/mpeg") then return "mp3" end
26 -- Use the media subtype as file extension whenever possible.
27 -- Return 'flv' if nothing is matched.
28 local mst = c_type:match("/(.-)$") or "flv"
29 mst = mst:gsub("^x%-","")
31 -- Some servers return the following content-types (instead
32 -- of "video/x-flv") for flash videos:
33 -- "application/x-shockwave-flash"
34 -- "text/plain"
35 for _,v in pairs({"octet", "shockwave","plain"}) do
36 if mst:match(v) then return "flv" end
37 end
39 return mst
40 end
42 --[[
43 local a = {
44 'video/x-flv',
45 'video/flv',
46 'audio/mpeg',
47 'video/mpeg',
48 'video/webm',
49 'audio/mp4',
50 'video/mp4',
51 'application/octet-stream',
52 'application/x-shockwave-flash',
53 'text/plain',
54 'invalid content-type',
56 for _,v in pairs(a) do
57 print(v,to_file_ext({utilscript_dir='.'},v))
58 end
59 ]]--
61 -- vim: set ts=2 sw=2 tw=72 expandtab: