mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-15 08:32:41 +00:00
Ignore other bots: skip m.notice + IGNORED_BOTS denylist (Pete)
No repost (urls.go) or XP (xp.go) for ignored senders. Filters at the dispatcher so all plugins are covered. m.notice catches convention- following bots; IGNORED_BOTS handles m.text bots like Pete.
This commit is contained in:
22
main.go
22
main.go
@@ -206,6 +206,14 @@ func main() {
|
||||
|
||||
// ---- Set up event handlers ----
|
||||
|
||||
// Bots we ignore wholesale (no repost, no XP). Set IGNORED_BOTS to a
|
||||
// comma-separated list of Matrix user IDs. Pete (@pete:...) posts plain
|
||||
// m.text, so the m.notice convention below won't catch it on its own.
|
||||
ignoredBots := make(map[id.UserID]bool)
|
||||
for _, u := range splitAndTrim(os.Getenv("IGNORED_BOTS"), ",") {
|
||||
ignoredBots[id.UserID(u)] = true
|
||||
}
|
||||
|
||||
syncer := client.Syncer.(*mautrix.DefaultSyncer)
|
||||
|
||||
// Auto-join on invite + moderation member tracking
|
||||
@@ -260,11 +268,25 @@ func main() {
|
||||
return
|
||||
}
|
||||
|
||||
// Skip explicitly ignored bots (e.g. Pete, which posts m.text).
|
||||
if ignoredBots[evt.Sender] {
|
||||
return
|
||||
}
|
||||
|
||||
content := evt.Content.AsMessage()
|
||||
if content == nil || content.Body == "" {
|
||||
return
|
||||
}
|
||||
|
||||
// Ignore messages from other bots. By Matrix convention automated
|
||||
// clients send m.notice (instead of m.text) precisely so other bots
|
||||
// don't react to them, which avoids feedback loops. Dropping notices
|
||||
// here means no plugin reposts them (urls.go) or awards XP for them
|
||||
// (xp.go). Our own messages are already skipped by the sender check.
|
||||
if content.MsgType == event.MsgNotice {
|
||||
return
|
||||
}
|
||||
|
||||
// Ignore edits — they arrive as m.room.message with m.replace relation.
|
||||
// Without this check, edits re-trigger URL previews and inflate stats.
|
||||
if content.RelatesTo != nil && content.RelatesTo.Type == event.RelReplace {
|
||||
|
||||
Reference in New Issue
Block a user