natsim

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

commit 7814525f048c47216909c9605e980fac4668c9a6
parent e0014e3ebd795aa578130905ccbeacfe216912aa
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date:   Sun, 29 Jun 2025 19:14:22 +0000

Unsubscribe command
Diffstat:
Mmain.go | 22++++++++++++++++++++++
1 file changed, 22 insertions(+), 0 deletions(-)

diff --git a/main.go b/main.go @@ -265,6 +265,28 @@ func (natsim *NatsIM) doCommands() { natsim.irc.QuitMessage = cmd.arg natsim.Close() + case "unsubscribe": + if n, err := strconv.Atoi(cmd.arg); err == nil && n > 0 && n <= len(natsim.subs) { + if err = natsim.subs[n-1].Unsubscribe(); err != nil { + natsim.ircSendError("Unsubscribe", err) + } else { + natsim.ircSendf("Unsubscribed from %q", natsim.subs[n-1].Subject) + natsim.subs = append(natsim.subs[:n-1], natsim.subs[n:]...) + } + } else { + n := 0 + for i, s := range natsim.subs { + if s.Subject != cmd.arg { + natsim.subs[n] = natsim.subs[i] + n++ + } else if err = s.Unsubscribe(); err != nil { + natsim.ircSendError("Unsubscribe", err) + } + } + natsim.ircSendf("Unsubscribed from %d subjects", len(natsim.subs)-n) + natsim.subs = natsim.subs[:n] + } + case "version": natsim.ircSendf("natsim %s", version)