natsim

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

commit 7d245e82552548db38b38be068c3a6cd425e2911
parent b0df765fb1a28f2864906f9f797490149ae3d10b
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date:   Fri, 25 Jul 2025 19:29:26 +0000

Temprary autoclear in both polarities
Diffstat:
Mmain.go | 23++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/main.go b/main.go @@ -83,6 +83,7 @@ type IrcConfig struct { AntiFlood antiflood Filter []FilterElement AutoClear bool + nextClear bool AllowCmd []string AllowSend []string BlockCmd []string @@ -172,6 +173,8 @@ func NewNatsIM(configPath string) (*NatsIM, error) { } } + natsim.Irc.nextClear = natsim.Irc.AutoClear + natsim.cmdQueue = make(chan command, 10) natsim.ircQueue = make(chan string, 10) @@ -270,15 +273,27 @@ func (natsim *NatsIM) doCommands() { case "autoclear": switch cmd.arg { case "": + temp := "" + state := "off" + if natsim.Irc.AutoClear != natsim.Irc.nextClear { + temp = "temporarily " + } if natsim.Irc.AutoClear { - natsim.ircSend("Autoclear is on") - } else { - natsim.ircSend("Autoclear is off") + state = "on" } + natsim.ircSendf("Autoclear is %s%s", temp, state) + case "after": + natsim.Irc.AutoClear = false + natsim.Irc.nextClear = true case "on": natsim.Irc.AutoClear = true + natsim.Irc.nextClear = true + case "once": + natsim.Irc.AutoClear = true + natsim.Irc.nextClear = false case "off": natsim.Irc.AutoClear = false + natsim.Irc.nextClear = false default: natsim.ircSendf("Unknown autoclear option %q", cmd.arg) } @@ -464,6 +479,7 @@ func (natsim *NatsIM) doCommands() { if natsim.Irc.AutoClear { natsim.curMsg = nats.Msg{} } + natsim.Irc.AutoClear = natsim.Irc.nextClear case "status": var buf strings.Builder @@ -663,6 +679,7 @@ func (natsim *NatsIM) ircReceive(e *irc.Event) { if natsim.Irc.AutoClear { natsim.curMsg = nats.Msg{} } + natsim.Irc.AutoClear = natsim.Irc.nextClear } } }