imapfilter/message.lua

94 lines
2.2 KiB
Lua

-- The Message class that represents messages inside a mailbox.
Message = {}
Message._mt = {}
setmetatable(Message, Message._mt)
Message._mt.__call = function (self, account, mailbox, uid)
local object = {}
object._type = 'message'
for key, value in pairs(Message) do
if (type(value) == 'function') then
object[key] = value
end
end
object._mt = {}
setmetatable(object, object._mt)
object._account = account
object._mailbox = mailbox
object._uid = uid
object._structure = nil
object._header = nil
object._body = nil
object._fields = {}
object._parts = {}
object._size = nil
object._date = nil
return object
end
function Message.fetch_structure(self)
local r = self._mailbox._fetch_structure(self._mailbox, { self._uid })
return r[self._uid]
end
function Message.fetch_header(self)
local r = self._mailbox._fetch_header(self._mailbox, { self._uid })
return r[self._uid]
end
function Message.fetch_body(self)
local r = self._mailbox._fetch_body(self._mailbox, { self._uid })
return r[self._uid]
end
function Message.fetch_message(self)
local r = self._mailbox._fetch_message(self._mailbox, { self._uid })
return r[self._uid]
end
function Message.fetch_field(self, field)
local r = self._mailbox._fetch_fields(self._mailbox, { field },
{ self._uid })
return r[self._uid]
end
function Message.fetch_fields(self, fields)
local r = self._mailbox._fetch_fields(self._mailbox, fields, { self._uid })
return r[self._uid]
end
function Message.fetch_part(self, part)
local r = self._mailbox._fetch_parts(self._mailbox, { part }, self._uid)
return r[part]
end
function Message.fetch_size(self)
local r = self._mailbox._fetch_size(self._mailbox, { self._uid })
return r[self._uid]
end
function Message.fetch_date(self)
local r = self._mailbox._fetch_date(self._mailbox, { self._uid })
return r[self._uid]
end
function Message.fetch_flags(self)
local r = self._mailbox._fetch_flags(self._mailbox, { self._uid })
return r[self._uid]
end
Message._mt.__index = function () end
Message._mt.__newindex = function () end