Thumbnail

rani/matterbridge.git

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

commit 84db1ea6b985635c1fa072761e9a2bafa2769be7 Author: Wim <wim@42.be> Date: Mon Jul 17 21:28:31 2017 +0000 Tag messages we send ourself using CallbackID hack (slack). Closes #219 diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go index b6753bb..72392a6 100644 --- a/bridge/slack/slack.go +++ b/bridge/slack/slack.go @@ -327 +326 @@ type Bslack struct {   Account string   si *slack.Info   channels []slack.Channel - BotID string  }    var flog *log.Entry @@ -1606 +1597 @@ func (b *Bslack) Send(msg config.Message) error {   if msg.Avatar != "" {   np.IconURL = msg.Avatar   } + np.Attachments = append(np.Attachments, slack.Attachment{CallbackID: "matterbridge"})   b.sc.PostMessage(schannel.ID, message, np)     /* @@ -2197 +2197 @@ func (b *Bslack) handleSlack() {   flog.Debug("Start listening for Slack messages")   for message := range mchan {   // do not send messages from ourself - if b.Config.WebhookURL == "" && b.Config.WebhookBindAddress == "" && (message.Username == b.si.User.Name || message.UserID == b.BotID) { + if b.Config.WebhookURL == "" && b.Config.WebhookBindAddress == "" && message.Username == b.si.User.Name {   continue   }   texts := strings.Split(message.Text, "\n") @@ -2416 +24112 @@ func (b *Bslack) handleSlackClient(mchan chan *MMMessage) {   // ignore first message   if count > 0 {   flog.Debugf("Receiving from slackclient %#v", ev) + if len(ev.Attachments) > 0 { + // skip messages we made ourselves + if ev.Attachments[0].CallbackID == "matterbridge" { + continue + } + }   if !b.Config.EditDisable && ev.SubMessage != nil && ev.SubMessage.ThreadTimestamp != ev.SubMessage.Timestamp {   flog.Debugf("SubMessage %#v", ev.SubMessage)   ev.User = ev.SubMessage.User @@ -29312 +2996 @@ func (b *Bslack) handleSlackClient(mchan chan *MMMessage) {   case *slack.ConnectedEvent:   b.channels = ev.Info.Channels   b.si = ev.Info - for _, bot := range b.si.Bots { - if bot.Name == "Slack API Tester" { - b.BotID = bot.ID - flog.Debugf("my bot ID is %#v", bot.ID) - } - }   b.Users, _ = b.sc.GetUsers()   // add private channels   groups, _ := b.sc.GetGroups(true)