natsim

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

commit 653d95ce65b0125e1810c29ae2837044f541d917
parent 696c2d6a40dc7103dcc9a921a9b63cd4793079de
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date:   Wed,  9 Jul 2025 19:28:46 +0000

Reply subject in sent message
Diffstat:
Mmain.go | 14+++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/main.go b/main.go @@ -106,6 +106,7 @@ type NatsIM struct { irc *irc.Connection nc *nats.Conn subs []*nats.Subscription + curMsg nats.Msg db *sql.DB ensureSubject *sql.Stmt insertReceived *sql.Stmt @@ -318,6 +319,11 @@ func (natsim *NatsIM) doCommands() { WriteFilter(&buf, "\n I", natsim.Irc.Filter) natsim.ircSend(buf.String()) + case "reply-to": + fallthrough + case "replyto": + natsim.curMsg.Reply = cmd.arg + case "status": var buf strings.Builder @@ -473,12 +479,14 @@ func (natsim *NatsIM) ircReceive(e *irc.Event) { if name, arg, found := unpackMark(natsim.Irc.Cmd, msg, true); found { natsim.cmdQueue <- command{name: name, arg: arg} } else if subject, data, found := unpackMark(natsim.Irc.Send, msg, false); found { - nMsg := nats.Msg{Subject: subject, Data: []byte(data)} - if err := natsim.nc.PublishMsg(&nMsg); err != nil { + natsim.curMsg.Subject = subject + natsim.curMsg.Data = []byte(data) + if err := natsim.nc.PublishMsg(&natsim.curMsg); err != nil { natsim.ircSendError("Publish", err) } else { - natsim.logSent(&nMsg) + natsim.logSent(&natsim.curMsg) } + natsim.curMsg = nats.Msg{} } }