From 0f7b2979cc6547d00d11ca63fd0a0cc6ea542c25 Mon Sep 17 00:00:00 2001 From: rebecca Date: Thu, 24 Sep 2026 18:14:39 +0100 Subject: actually add Message class --- discord/pylon.lua | 1 + irc/pylon.lua | 1 + message.lua | 19 +++++++++++++++++++ xmpp/pylon.lua | 1 + 4 files changed, 22 insertions(+) create mode 100644 message.lua diff --git a/discord/pylon.lua b/discord/pylon.lua index f035fbc..6cebc16 100644 --- a/discord/pylon.lua +++ b/discord/pylon.lua @@ -6,6 +6,7 @@ local class = require 'r.class' local BasePylon = require 'pylon' local Thing = require 'thing' +local Message = require 'message' local consts = require 'discord.consts' local opcodes = consts.opcodes diff --git a/irc/pylon.lua b/irc/pylon.lua index 1be3ab2..741440c 100644 --- a/irc/pylon.lua +++ b/irc/pylon.lua @@ -4,6 +4,7 @@ local class = require'r.class' local Thing = require'thing' local BasePylon = require'pylon' +local Message = require'message' local rirc = require'irc.rirc' local Irc = class.extend(BasePylon) diff --git a/message.lua b/message.lua new file mode 100644 index 0000000..092f332 --- /dev/null +++ b/message.lua @@ -0,0 +1,19 @@ +local class = require'r.class' + +local BasePylon = require 'pylon' +local Thing = require 'thing' + +local Message = class() +-- since this is the beating heart of wilson, it pays to do some validation +function Message.make(cls, self) + setmetatable(self,cls) + for k,v in pairs{ + pylon=BasePylon, + channel=Thing, + author=Thing, + } do assert(class.is(self[k],v), 'field '..k..' missing or wrong') end + assert(type(self.body)=='string','field body missing or wrong') + assert(self.pylon == self.channel.pylon and self.pylon == self.author.pylon, + "inconsistent pylons!") + return self end +return Message diff --git a/xmpp/pylon.lua b/xmpp/pylon.lua index 7fd7a1a..9f5ccfe 100644 --- a/xmpp/pylon.lua +++ b/xmpp/pylon.lua @@ -3,6 +3,7 @@ local class = require'r.class' local Thing = require'thing' local BasePylon = require 'pylon' +local Message = require 'message' local xml = require'xmpp.xml' local X,xmlify = xml.X, xml.xmlify local base64 = require'xmpp.base64' -- cgit v1.2.3