* libs/http: added http mime helper lib
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 26 Jun 2008 18:31:25 +0000 (18:31 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 26 Jun 2008 18:31:25 +0000 (18:31 +0000)
libs/http/luasrc/http/protocol/date.lua
libs/http/luasrc/http/protocol/mime.lua [new file with mode: 0644]

index b3b993866426efbb79aa2715b22d1fca5a862eca..b9b55cc33d6d0ab473b693ad79a3d145995afc43 100644 (file)
@@ -192,7 +192,7 @@ function to_http(time)
        return os.date( "%a, %d %b %Y %H:%M:%S GMT", time )
 end
 
--- Compare to dates
+-- Compare two dates
 function compare(d1, d2)
 
        if d1:match("[^0-9]") then d1 = to_unix(d1) end
diff --git a/libs/http/luasrc/http/protocol/mime.lua b/libs/http/luasrc/http/protocol/mime.lua
new file mode 100644 (file)
index 0000000..d85b902
--- /dev/null
@@ -0,0 +1,60 @@
+--[[
+
+HTTP protocol implementation for LuCI - mime handling
+(c) 2008 Freifunk Leipzig / Jo-Philipp Wich <xm@leipzig.freifunk.net>
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+$Id$
+
+]]--
+
+module("luci.http.protocol.mime", package.seeall)
+
+-- MIME mapping
+MIME_TYPES = {
+    ["txt"]   = "text/plain";
+    ["js"]    = "text/javascript";
+    ["css"]   = "text/css";
+    ["htm"]   = "text/html";
+    ["html"]  = "text/html";
+
+    ["gif"]   = "image/gif";
+    ["png"]   = "image/png";
+    ["jpg"]   = "image/jpeg";
+    ["jpeg"]  = "image/jpeg";
+
+    ["xml"]   = "application/xml";
+}
+
+-- extract extension from a filename and return corresponding mime-type or
+-- "application/octet-stream" if the extension is unknown
+function to_mime(filename)
+       if type(filename) == "string" then
+               local ext = filename:match("[^%.]+$")
+
+               if ext and MIME_TYPES[ext:lower()] then
+                       return MIME_TYPES[ext:lower()]
+               end
+       end
+
+       return "application/octet-stream"
+end
+
+-- return corresponding extension for a given mime type or nil if the
+-- given mime-type is unknown
+function to_ext(mimetype)
+       if type(mimetype) == "string" then
+               for ext, type in luci.util.kspairs( MIME_TYPES ) do
+                       if type == mimetype then
+                               return ext
+                       end
+               end
+       end
+
+       return nil
+end