源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

92 lines
2.8 KiB

-- local _M = {}
-- if module then
-- mbox = _M
-- end
-- function _M.split_message(message_s)
-- local message = {}
-- message_s = string.gsub(message_s, "\r\n", "\n")
-- string.gsub(message_s, "^(.-\n)\n", function (h) message.headers = h end)
-- string.gsub(message_s, "^.-\n\n(.*)", function (b) message.body = b end)
-- if not message.body then
-- string.gsub(message_s, "^\n(.*)", function (b) message.body = b end)
-- end
-- if not message.headers and not message.body then
-- message.headers = message_s
-- end
-- return message.headers or "", message.body or ""
-- end
-- function _M.split_headers(headers_s)
-- local headers = {}
-- headers_s = string.gsub(headers_s, "\r\n", "\n")
-- headers_s = string.gsub(headers_s, "\n[ ]+", " ")
-- string.gsub("\n" .. headers_s, "\n([^\n]+)", function (h) table.insert(headers, h) end)
-- return headers
-- end
-- function _M.parse_header(header_s)
-- header_s = string.gsub(header_s, "\n[ ]+", " ")
-- header_s = string.gsub(header_s, "\n+", "")
-- local _, __, name, value = string.find(header_s, "([^%s:]-):%s*(.*)")
-- return name, value
-- end
-- function _M.parse_headers(headers_s)
-- local headers_t = _M.split_headers(headers_s)
-- local headers = {}
-- for i = 1, #headers_t do
-- local name, value = _M.parse_header(headers_t[i])
-- if name then
-- name = string.lower(name)
-- if headers[name] then
-- headers[name] = headers[name] .. ", " .. value
-- else headers[name] = value end
-- end
-- end
-- return headers
-- end
-- function _M.parse_from(from)
-- local _, __, name, address = string.find(from, "^%s*(.-)%s*%<(.-)%>")
-- if not address then
-- _, __, address = string.find(from, "%s*(.+)%s*")
-- end
-- name = name or ""
-- address = address or ""
-- if name == "" then name = address end
-- name = string.gsub(name, '"', "")
-- return name, address
-- end
-- function _M.split_mbox(mbox_s)
-- local mbox = {}
-- mbox_s = string.gsub(mbox_s, "\r\n", "\n") .."\n\nFrom \n"
-- local nj, i, j = 1, 1, 1
-- while 1 do
-- i, nj = string.find(mbox_s, "\n\nFrom .-\n", j)
-- if not i then break end
-- local message = string.sub(mbox_s, j, i-1)
-- table.insert(mbox, message)
-- j = nj+1
-- end
-- return mbox
-- end
-- function _M.parse(mbox_s)
-- local mbox = _M.split_mbox(mbox_s)
-- for i = 1, #mbox do
-- mbox[i] = _M.parse_message(mbox[i])
-- end
-- return mbox
-- end
-- function _M.parse_message(message_s)
-- local message = {}
-- message.headers, message.body = _M.split_message(message_s)
-- message.headers = _M.parse_headers(message.headers)
-- return message
-- end
-- return _M