commit a94d0254c402a06a4c61d60e8daf04adbe8d9a9b
parent 0a460f54ba1cce66aee906c0383c933793a3032e
Author: Natasha Kerensikova <natgh@instinctive.eu>
Date: Tue, 15 Jul 2025 18:54:39 +0000
Clearing current message after send is optional
Diffstat:
M | main.go | | | 37 | ++++++++++++++++++++++++++++--------- |
1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/main.go b/main.go
@@ -82,6 +82,7 @@ type IrcConfig struct {
ContPrefix string
AntiFlood antiflood
Filter []FilterElement
+ AutoClear bool
}
type LogConfig struct {
@@ -121,13 +122,11 @@ type NatsIM struct {
func NewNatsIM(configPath string) (*NatsIM, error) {
natsim := &NatsIM{
Irc: IrcConfig{
- Nick: "natsim",
- Cmd: LineMark{
- Start: "!",
- Mid: " ",
- },
- Send: LineMark{Mid: ": "},
- Show: LineMark{Mid: ": "},
+ Nick: "natsim",
+ Cmd: LineMark{Start: "!", Mid: " "},
+ Send: LineMark{Mid: ": "},
+ Show: LineMark{Mid: ": "},
+ AutoClear: true,
},
Nats: NatsConfig{
Name: "nastim",
@@ -256,6 +255,22 @@ func (natsim *NatsIM) doCommands() {
}
switch cmd.name {
+ case "autoclear":
+ switch cmd.arg {
+ case "":
+ if natsim.Irc.AutoClear {
+ natsim.ircSend("Autoclear is on")
+ } else {
+ natsim.ircSend("Autoclear is off")
+ }
+ case "on":
+ natsim.Irc.AutoClear = true
+ case "off":
+ natsim.Irc.AutoClear = false
+ default:
+ natsim.ircSendf("Unknown autoclear option %q", cmd.arg)
+ }
+
case "clearmsg":
natsim.curMsg = nats.Msg{}
@@ -404,7 +419,9 @@ func (natsim *NatsIM) doCommands() {
} else {
natsim.logSent(&natsim.curMsg)
}
- natsim.curMsg = nats.Msg{}
+ if natsim.Irc.AutoClear {
+ natsim.curMsg = nats.Msg{}
+ }
case "status":
var buf strings.Builder
@@ -571,7 +588,9 @@ func (natsim *NatsIM) ircReceive(e *irc.Event) {
} else {
natsim.logSent(&natsim.curMsg)
}
- natsim.curMsg = nats.Msg{}
+ if natsim.Irc.AutoClear {
+ natsim.curMsg = nats.Msg{}
+ }
}
}