ScuttleBot

feat: set +B bot mode on all 11 system bots (#120) All system bots now set user mode +B on connect so IRC clients can identify them as bots. INVITE auto-join was already in place for all bots — no changes needed there.

lmata 2026-04-05 03:55 trunk
Commit 29817cfd96a8982b633aab6fe93d6dd86f0d2968b6339d767f5b6a8351e8f2bb
--- internal/bots/auditbot/auditbot.go
+++ internal/bots/auditbot/auditbot.go
@@ -120,10 +120,11 @@
120120
PingTimeout: 30 * time.Second,
121121
SSL: false,
122122
})
123123
124124
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
125
+ cl.Cmd.Mode(cl.GetNick(), "+B")
125126
for _, ch := range b.channels {
126127
cl.Cmd.Join(ch)
127128
}
128129
b.log.Info("auditbot connected", "channels", b.channels, "audit_types", b.auditTypesList())
129130
})
130131
--- internal/bots/auditbot/auditbot.go
+++ internal/bots/auditbot/auditbot.go
@@ -120,10 +120,11 @@
120 PingTimeout: 30 * time.Second,
121 SSL: false,
122 })
123
124 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
125 for _, ch := range b.channels {
126 cl.Cmd.Join(ch)
127 }
128 b.log.Info("auditbot connected", "channels", b.channels, "audit_types", b.auditTypesList())
129 })
130
--- internal/bots/auditbot/auditbot.go
+++ internal/bots/auditbot/auditbot.go
@@ -120,10 +120,11 @@
120 PingTimeout: 30 * time.Second,
121 SSL: false,
122 })
123
124 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
125 cl.Cmd.Mode(cl.GetNick(), "+B")
126 for _, ch := range b.channels {
127 cl.Cmd.Join(ch)
128 }
129 b.log.Info("auditbot connected", "channels", b.channels, "audit_types", b.auditTypesList())
130 })
131
--- internal/bots/bridge/bridge.go
+++ internal/bots/bridge/bridge.go
@@ -173,10 +173,11 @@
173173
PingTimeout: 30 * time.Second,
174174
SSL: false,
175175
})
176176
177177
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
178
+ cl.Cmd.Mode(cl.GetNick(), "+B")
178179
if b.log != nil {
179180
b.log.Info("bridge connected")
180181
}
181182
for _, ch := range b.initChannels {
182183
cl.Cmd.Join(ch)
183184
--- internal/bots/bridge/bridge.go
+++ internal/bots/bridge/bridge.go
@@ -173,10 +173,11 @@
173 PingTimeout: 30 * time.Second,
174 SSL: false,
175 })
176
177 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
178 if b.log != nil {
179 b.log.Info("bridge connected")
180 }
181 for _, ch := range b.initChannels {
182 cl.Cmd.Join(ch)
183
--- internal/bots/bridge/bridge.go
+++ internal/bots/bridge/bridge.go
@@ -173,10 +173,11 @@
173 PingTimeout: 30 * time.Second,
174 SSL: false,
175 })
176
177 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
178 cl.Cmd.Mode(cl.GetNick(), "+B")
179 if b.log != nil {
180 b.log.Info("bridge connected")
181 }
182 for _, ch := range b.initChannels {
183 cl.Cmd.Join(ch)
184
--- internal/bots/herald/herald.go
+++ internal/bots/herald/herald.go
@@ -151,10 +151,11 @@
151151
PingTimeout: 30 * time.Second,
152152
SSL: false,
153153
})
154154
155155
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
156
+ cl.Cmd.Mode(cl.GetNick(), "+B")
156157
for _, ch := range b.channels {
157158
cl.Cmd.Join(ch)
158159
}
159160
if b.log != nil {
160161
b.log.Info("herald connected", "channels", b.channels)
161162
--- internal/bots/herald/herald.go
+++ internal/bots/herald/herald.go
@@ -151,10 +151,11 @@
151 PingTimeout: 30 * time.Second,
152 SSL: false,
153 })
154
155 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
156 for _, ch := range b.channels {
157 cl.Cmd.Join(ch)
158 }
159 if b.log != nil {
160 b.log.Info("herald connected", "channels", b.channels)
161
--- internal/bots/herald/herald.go
+++ internal/bots/herald/herald.go
@@ -151,10 +151,11 @@
151 PingTimeout: 30 * time.Second,
152 SSL: false,
153 })
154
155 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
156 cl.Cmd.Mode(cl.GetNick(), "+B")
157 for _, ch := range b.channels {
158 cl.Cmd.Join(ch)
159 }
160 if b.log != nil {
161 b.log.Info("herald connected", "channels", b.channels)
162
--- internal/bots/oracle/oracle.go
+++ internal/bots/oracle/oracle.go
@@ -162,10 +162,11 @@
162162
PingTimeout: 30 * time.Second,
163163
SSL: false,
164164
})
165165
166166
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
167
+ cl.Cmd.Mode(cl.GetNick(), "+B")
167168
for _, ch := range b.channels {
168169
cl.Cmd.Join(ch)
169170
}
170171
if b.log != nil {
171172
b.log.Info("oracle connected", "channels", b.channels)
172173
--- internal/bots/oracle/oracle.go
+++ internal/bots/oracle/oracle.go
@@ -162,10 +162,11 @@
162 PingTimeout: 30 * time.Second,
163 SSL: false,
164 })
165
166 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
167 for _, ch := range b.channels {
168 cl.Cmd.Join(ch)
169 }
170 if b.log != nil {
171 b.log.Info("oracle connected", "channels", b.channels)
172
--- internal/bots/oracle/oracle.go
+++ internal/bots/oracle/oracle.go
@@ -162,10 +162,11 @@
162 PingTimeout: 30 * time.Second,
163 SSL: false,
164 })
165
166 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
167 cl.Cmd.Mode(cl.GetNick(), "+B")
168 for _, ch := range b.channels {
169 cl.Cmd.Join(ch)
170 }
171 if b.log != nil {
172 b.log.Info("oracle connected", "channels", b.channels)
173
--- internal/bots/scribe/scribe.go
+++ internal/bots/scribe/scribe.go
@@ -64,10 +64,11 @@
6464
PingTimeout: 30 * time.Second,
6565
SSL: false,
6666
})
6767
6868
c.Handlers.AddBg(girc.CONNECTED, func(client *girc.Client, e girc.Event) {
69
+ client.Cmd.Mode(client.GetNick(), "+B")
6970
for _, ch := range b.channels {
7071
client.Cmd.Join(ch)
7172
}
7273
b.log.Info("scribe connected and joined channels", "channels", b.channels)
7374
})
7475
--- internal/bots/scribe/scribe.go
+++ internal/bots/scribe/scribe.go
@@ -64,10 +64,11 @@
64 PingTimeout: 30 * time.Second,
65 SSL: false,
66 })
67
68 c.Handlers.AddBg(girc.CONNECTED, func(client *girc.Client, e girc.Event) {
 
69 for _, ch := range b.channels {
70 client.Cmd.Join(ch)
71 }
72 b.log.Info("scribe connected and joined channels", "channels", b.channels)
73 })
74
--- internal/bots/scribe/scribe.go
+++ internal/bots/scribe/scribe.go
@@ -64,10 +64,11 @@
64 PingTimeout: 30 * time.Second,
65 SSL: false,
66 })
67
68 c.Handlers.AddBg(girc.CONNECTED, func(client *girc.Client, e girc.Event) {
69 client.Cmd.Mode(client.GetNick(), "+B")
70 for _, ch := range b.channels {
71 client.Cmd.Join(ch)
72 }
73 b.log.Info("scribe connected and joined channels", "channels", b.channels)
74 })
75
--- internal/bots/scroll/scroll.go
+++ internal/bots/scroll/scroll.go
@@ -75,10 +75,11 @@
7575
PingTimeout: 30 * time.Second,
7676
SSL: false,
7777
})
7878
7979
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, e girc.Event) {
80
+ cl.Cmd.Mode(cl.GetNick(), "+B")
8081
for _, ch := range b.channels {
8182
cl.Cmd.Join(ch)
8283
}
8384
b.log.Info("scroll connected", "channels", b.channels)
8485
})
8586
--- internal/bots/scroll/scroll.go
+++ internal/bots/scroll/scroll.go
@@ -75,10 +75,11 @@
75 PingTimeout: 30 * time.Second,
76 SSL: false,
77 })
78
79 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, e girc.Event) {
 
80 for _, ch := range b.channels {
81 cl.Cmd.Join(ch)
82 }
83 b.log.Info("scroll connected", "channels", b.channels)
84 })
85
--- internal/bots/scroll/scroll.go
+++ internal/bots/scroll/scroll.go
@@ -75,10 +75,11 @@
75 PingTimeout: 30 * time.Second,
76 SSL: false,
77 })
78
79 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, e girc.Event) {
80 cl.Cmd.Mode(cl.GetNick(), "+B")
81 for _, ch := range b.channels {
82 cl.Cmd.Join(ch)
83 }
84 b.log.Info("scroll connected", "channels", b.channels)
85 })
86
--- internal/bots/sentinel/sentinel.go
+++ internal/bots/sentinel/sentinel.go
@@ -146,10 +146,11 @@
146146
PingDelay: 30 * time.Second,
147147
PingTimeout: 30 * time.Second,
148148
})
149149
150150
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
151
+ cl.Cmd.Mode(cl.GetNick(), "+B")
151152
for _, ch := range b.cfg.Channels {
152153
cl.Cmd.Join(ch)
153154
}
154155
cl.Cmd.Join(b.cfg.ModChannel)
155156
if b.log != nil {
156157
--- internal/bots/sentinel/sentinel.go
+++ internal/bots/sentinel/sentinel.go
@@ -146,10 +146,11 @@
146 PingDelay: 30 * time.Second,
147 PingTimeout: 30 * time.Second,
148 })
149
150 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
151 for _, ch := range b.cfg.Channels {
152 cl.Cmd.Join(ch)
153 }
154 cl.Cmd.Join(b.cfg.ModChannel)
155 if b.log != nil {
156
--- internal/bots/sentinel/sentinel.go
+++ internal/bots/sentinel/sentinel.go
@@ -146,10 +146,11 @@
146 PingDelay: 30 * time.Second,
147 PingTimeout: 30 * time.Second,
148 })
149
150 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
151 cl.Cmd.Mode(cl.GetNick(), "+B")
152 for _, ch := range b.cfg.Channels {
153 cl.Cmd.Join(ch)
154 }
155 cl.Cmd.Join(b.cfg.ModChannel)
156 if b.log != nil {
157
--- internal/bots/snitch/snitch.go
+++ internal/bots/snitch/snitch.go
@@ -135,10 +135,11 @@
135135
PingDelay: 30 * time.Second,
136136
PingTimeout: 30 * time.Second,
137137
})
138138
139139
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
140
+ cl.Cmd.Mode(cl.GetNick(), "+B")
140141
for _, ch := range b.cfg.Channels {
141142
cl.Cmd.Join(ch)
142143
}
143144
if b.cfg.AlertChannel != "" {
144145
cl.Cmd.Join(b.cfg.AlertChannel)
145146
--- internal/bots/snitch/snitch.go
+++ internal/bots/snitch/snitch.go
@@ -135,10 +135,11 @@
135 PingDelay: 30 * time.Second,
136 PingTimeout: 30 * time.Second,
137 })
138
139 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
140 for _, ch := range b.cfg.Channels {
141 cl.Cmd.Join(ch)
142 }
143 if b.cfg.AlertChannel != "" {
144 cl.Cmd.Join(b.cfg.AlertChannel)
145
--- internal/bots/snitch/snitch.go
+++ internal/bots/snitch/snitch.go
@@ -135,10 +135,11 @@
135 PingDelay: 30 * time.Second,
136 PingTimeout: 30 * time.Second,
137 })
138
139 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
140 cl.Cmd.Mode(cl.GetNick(), "+B")
141 for _, ch := range b.cfg.Channels {
142 cl.Cmd.Join(ch)
143 }
144 if b.cfg.AlertChannel != "" {
145 cl.Cmd.Join(b.cfg.AlertChannel)
146
--- internal/bots/steward/steward.go
+++ internal/bots/steward/steward.go
@@ -130,10 +130,11 @@
130130
PingDelay: 30 * time.Second,
131131
PingTimeout: 30 * time.Second,
132132
})
133133
134134
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
135
+ cl.Cmd.Mode(cl.GetNick(), "+B")
135136
for _, ch := range b.cfg.Channels {
136137
cl.Cmd.Join(ch)
137138
}
138139
cl.Cmd.Join(b.cfg.ModChannel)
139140
if b.log != nil {
140141
--- internal/bots/steward/steward.go
+++ internal/bots/steward/steward.go
@@ -130,10 +130,11 @@
130 PingDelay: 30 * time.Second,
131 PingTimeout: 30 * time.Second,
132 })
133
134 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
135 for _, ch := range b.cfg.Channels {
136 cl.Cmd.Join(ch)
137 }
138 cl.Cmd.Join(b.cfg.ModChannel)
139 if b.log != nil {
140
--- internal/bots/steward/steward.go
+++ internal/bots/steward/steward.go
@@ -130,10 +130,11 @@
130 PingDelay: 30 * time.Second,
131 PingTimeout: 30 * time.Second,
132 })
133
134 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
135 cl.Cmd.Mode(cl.GetNick(), "+B")
136 for _, ch := range b.cfg.Channels {
137 cl.Cmd.Join(ch)
138 }
139 cl.Cmd.Join(b.cfg.ModChannel)
140 if b.log != nil {
141
--- internal/bots/systembot/systembot.go
+++ internal/bots/systembot/systembot.go
@@ -91,10 +91,11 @@
9191
PingTimeout: 30 * time.Second,
9292
SSL: false,
9393
})
9494
9595
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
96
+ cl.Cmd.Mode(cl.GetNick(), "+B")
9697
for _, ch := range b.channels {
9798
cl.Cmd.Join(ch)
9899
}
99100
b.log.Info("systembot connected", "channels", b.channels)
100101
})
101102
--- internal/bots/systembot/systembot.go
+++ internal/bots/systembot/systembot.go
@@ -91,10 +91,11 @@
91 PingTimeout: 30 * time.Second,
92 SSL: false,
93 })
94
95 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
96 for _, ch := range b.channels {
97 cl.Cmd.Join(ch)
98 }
99 b.log.Info("systembot connected", "channels", b.channels)
100 })
101
--- internal/bots/systembot/systembot.go
+++ internal/bots/systembot/systembot.go
@@ -91,10 +91,11 @@
91 PingTimeout: 30 * time.Second,
92 SSL: false,
93 })
94
95 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
96 cl.Cmd.Mode(cl.GetNick(), "+B")
97 for _, ch := range b.channels {
98 cl.Cmd.Join(ch)
99 }
100 b.log.Info("systembot connected", "channels", b.channels)
101 })
102
--- internal/bots/warden/warden.go
+++ internal/bots/warden/warden.go
@@ -199,10 +199,11 @@
199199
PingTimeout: 30 * time.Second,
200200
SSL: false,
201201
})
202202
203203
c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
204
+ cl.Cmd.Mode(cl.GetNick(), "+B")
204205
for _, ch := range b.initChannels {
205206
cl.Cmd.Join(ch)
206207
}
207208
for ch := range b.channelConfigs {
208209
cl.Cmd.Join(ch)
209210
--- internal/bots/warden/warden.go
+++ internal/bots/warden/warden.go
@@ -199,10 +199,11 @@
199 PingTimeout: 30 * time.Second,
200 SSL: false,
201 })
202
203 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
 
204 for _, ch := range b.initChannels {
205 cl.Cmd.Join(ch)
206 }
207 for ch := range b.channelConfigs {
208 cl.Cmd.Join(ch)
209
--- internal/bots/warden/warden.go
+++ internal/bots/warden/warden.go
@@ -199,10 +199,11 @@
199 PingTimeout: 30 * time.Second,
200 SSL: false,
201 })
202
203 c.Handlers.AddBg(girc.CONNECTED, func(cl *girc.Client, _ girc.Event) {
204 cl.Cmd.Mode(cl.GetNick(), "+B")
205 for _, ch := range b.initChannels {
206 cl.Cmd.Join(ch)
207 }
208 for ch := range b.channelConfigs {
209 cl.Cmd.Join(ch)
210

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button