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:
M | main.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
}
}
}