From 98b954a48f2dd11f48cbc92652de20b0fa5d460b Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Thu, 26 Jun 2008 18:31:25 +0000 Subject: [PATCH] * libs/http: added http mime helper lib --- libs/http/luasrc/http/protocol/date.lua | 2 +- libs/http/luasrc/http/protocol/mime.lua | 60 +++++++++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 libs/http/luasrc/http/protocol/mime.lua diff --git a/libs/http/luasrc/http/protocol/date.lua b/libs/http/luasrc/http/protocol/date.lua index b3b993866..b9b55cc33 100644 --- a/libs/http/luasrc/http/protocol/date.lua +++ b/libs/http/luasrc/http/protocol/date.lua @@ -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 index 000000000..d85b9025e --- /dev/null +++ b/libs/http/luasrc/http/protocol/mime.lua @@ -0,0 +1,60 @@ +--[[ + +HTTP protocol implementation for LuCI - mime handling +(c) 2008 Freifunk Leipzig / Jo-Philipp Wich + +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 -- 2.25.1