natsim

NATS ↔ Instant Messaging Bridge
git clone https://git.instinctive.eu/natsim.git
Log | Files | Refs | README | LICENSE

commit 207ccc4eef04f93a987562ad2b3b9af59dad161f
parent 12ec74aee8a39a0d02113c6763a23f4fa3843d15
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date:   Sun, 13 Jul 2025 20:37:01 +0000

Commands to craft and publish a message
Diffstat:
Mmain.go | 19+++++++++++++++++++
1 file changed, 19 insertions(+), 0 deletions(-)

diff --git a/main.go b/main.go @@ -259,6 +259,9 @@ func (natsim *NatsIM) doCommands() { case "curmsg": var sb strings.Builder sb.WriteString("[WIP]") + sb.WriteString(packMark(natsim.Irc.Show, + natsim.curMsg.Subject, + string(natsim.curMsg.Data))) if natsim.curMsg.Reply != "" { show := LineMark{Start: "Reply-To:"} @@ -305,6 +308,9 @@ func (natsim *NatsIM) doCommands() { natsim.ircSendf("No index %d in header %q", index, key) } + case "data": + natsim.curMsg.Data = []byte(cmd.arg) + case "filter": var plist *[]FilterElement var name string @@ -387,6 +393,16 @@ func (natsim *NatsIM) doCommands() { case "replyto": natsim.curMsg.Reply = cmd.arg + case "send": + if natsim.curMsg.Subject == "" { + natsim.ircSend("Cannot send message without subject") + } else if err := natsim.nc.PublishMsg(&natsim.curMsg); err != nil { + natsim.ircSendError("Publish", err) + } else { + natsim.logSent(&natsim.curMsg) + } + natsim.curMsg = nats.Msg{} + case "status": var buf strings.Builder @@ -411,6 +427,9 @@ func (natsim *NatsIM) doCommands() { buf.WriteString(fmt.Sprintf(", %d subscriptions\n%s", natsim.nc.NumSubscriptions(), natsim.natsStats())) natsim.ircSend(buf.String()) + case "subject": + natsim.curMsg.Subject = cmd.arg + case "subscribe": if s, err := natsim.nc.Subscribe(cmd.arg, natsim.natsReceive); err != nil { natsim.ircSendError("Subscribe", err)