commit 7b28f5b2b297b618b84e77cd3286709737ac3c98
Author: Neil Hanlon <neil@shrug.pw>
Date: Thu May 23 17:58:58 2024 +0000
diff --git a/bridge/mattermost/helpers.go b/bridge/mattermost/helpers.go
index cca1c4e..bc3eacb 100644
--- a/bridge/mattermost/helpers.go
+++ b/bridge/mattermost/helpers.go
@@ -17112 +17124 @@ func (b *Bmattermost) sendWebhook(msg config.Message) (string, error) {
}
// skipMessages returns true if this message should not be handled
+//
//nolint:gocyclo,cyclop
func (b *Bmattermost) skipMessage(message *matterclient.Message) bool {
+
// Handle join/leave
- if message.Type == "system_join_leave" ||
- message.Type == "system_join_channel" ||
- message.Type == "system_leave_channel" {
+ skipJoinMessageTypes := map[string]struct{}{
+ "system_join_leave": {}, //deprecated for system_add_to_channel
+ "system_leave_channel": {}, //deprecated for system_remove_from_channel
+ "system_join_channel": {},
+ "system_add_to_channel": {},
+ "system_remove_from_channel": {},
+ "system_add_to_team": {},
+ "system_remove_from_team": {},
+ }
+
+ // dirty hack to efficiently check if this element is in the map without writing a contains func
+ // can be replaced with native slice.contains with go 1.21
+ if _, ok := skipJoinMessageTypes[message.Type]; ok {
if b.GetBool("nosendjoinpart") {
return true
}