Thumbnail

rani/matterbridge.git

Clone URL: https://git.buni.party/rani/matterbridge.git

commit af37246411203e56082c7b6adfc4ef09d757f31c Author: Wim <wim@42.be> Date: Sat Apr 18 22:30:49 2020 +0000 Prevent image/message looping (slack). Fixes #1088 (#1096) Also check for our matterbridge ID in Blocks set in SubMessages. diff --git a/bridge/slack/handlers.go b/bridge/slack/handlers.go index 88136cb..56e112d 100644 --- a/bridge/slack/handlers.go +++ b/bridge/slack/handlers.go @@ -13712 +1376 @@ func (b *Bslack) skipMessageEvent(ev *slack.MessageEvent) bool {   hasOurCallbackID = ok && block.BlockID == "matterbridge_"+b.uuid   }   - // Skip any messages that we made ourselves or from 'slackbot' (see #527). - if ev.Username == sSlackBotUser || - (b.rtm != nil && ev.Username == b.si.User.Name) || hasOurCallbackID { - return true - } -   if ev.SubMessage != nil {   // It seems ev.SubMessage.Edited == nil when slack unfurls.   // Do not forward these messages. See Github issue #266. @@ -1556 +14916 @@ func (b *Bslack) skipMessageEvent(ev *slack.MessageEvent) bool {   if ev.SubType == "message_replied" && ev.Hidden {   return true   } + if len(ev.SubMessage.Blocks.BlockSet) == 1 { + block, ok := ev.SubMessage.Blocks.BlockSet[0].(*slack.SectionBlock) + hasOurCallbackID = ok && block.BlockID == "matterbridge_"+b.uuid + } + } + + // Skip any messages that we made ourselves or from 'slackbot' (see #527). + if ev.Username == sSlackBotUser || + (b.rtm != nil && ev.Username == b.si.User.Name) || hasOurCallbackID { + return true   }     if len(ev.Files) > 0 {