natsim

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

commit 02f396810119b6dbbc0517cf2656f37c0c50c2e0
parent d541a4747e328e09c841fb277dab31c6cd415d27
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date:   Thu, 19 Jun 2025 19:13:12 +0000

Message headers and reply topic are optionally shown on IRC
Diffstat:
Mmain.go | 22++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/main.go b/main.go @@ -75,6 +75,8 @@ type IrcConfig struct { Cmd LineMark Send LineMark Show LineMark + ShowReply *LineMark + ShowHeader *LineMark MaxLine int ContSuffix string ContPrefix string @@ -362,8 +364,24 @@ func (natsim *NatsIM) natsReceive(m *nats.Msg) { return } - msg := packMark(natsim.Irc.Show, m.Subject, string(m.Data)) - natsim.ircSend(msg) + var sb strings.Builder + sb.WriteString(packMark(natsim.Irc.Show, m.Subject, string(m.Data))) + + if m.Reply != "" && natsim.Irc.ShowReply != nil { + sb.WriteString(natsim.Irc.ShowReply.Start) + sb.WriteString(m.Reply) + sb.WriteString(natsim.Irc.ShowReply.End) + } + + if natsim.Irc.ShowHeader != nil { + for key, values := range m.Header { + for _, value := range values { + sb.WriteString(packMark(*natsim.Irc.ShowHeader, key, value)) + } + } + } + + natsim.ircSend(sb.String()) } func (natsim *NatsIM) natsReconnected(c *nats.Conn) {