Thumbnail

rani/matterbridge.git

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

commit f19d09f85d981633e0116904429ff16fd0ca1f14 Author: Wim <wim@42.be> Date: Sun May 27 21:50:00 2018 +0000 Use uuid instead of userid. Fixes #429 diff --git a/bridge/mattermost/mattermost.go b/bridge/mattermost/mattermost.go index 42843d0..51d3242 100644 --- a/bridge/mattermost/mattermost.go +++ b/bridge/mattermost/mattermost.go @@ -812 +814 @@ import (   "github.com/42wim/matterbridge/bridge/helper"   "github.com/42wim/matterbridge/matterclient"   "github.com/42wim/matterbridge/matterhook" + "github.com/rs/xid"   "strings"  )    type Bmattermost struct {   mh *matterhook.Client   mc *matterclient.MMClient + uuid string   TeamID string   *bridge.Config   avatarMap map[string]string @@ -216 +237 @@ type Bmattermost struct {    func New(cfg *bridge.Config) bridge.Bridger {   b := &Bmattermost{Config: cfg, avatarMap: make(map[string]string)} + b.uuid = xid.New().String()   return b  }   @@ -3667 +3697 @@ func (b *Bmattermost) sendWebhook(msg config.Message) (string, error) {   // this sends a message only if we received a config.EVENT_FILE_FAILURE_SIZE   for _, rmsg := range helper.HandleExtra(&msg, b.General) {   matterMessage := matterhook.OMessage{IconURL: b.GetString("IconURL"), Channel: rmsg.Channel, UserName: rmsg.Username, Text: rmsg.Text, Props: make(map[string]interface{})} - matterMessage.Props["matterbridge_"+b.mc.User.Id] = true + matterMessage.Props["matterbridge_"+b.uuid] = true   b.mh.Send(matterMessage)   }   @@ -3857 +3887 @@ func (b *Bmattermost) sendWebhook(msg config.Message) (string, error) {   if msg.Avatar != "" {   matterMessage.IconURL = msg.Avatar   } - matterMessage.Props["matterbridge_"+b.mc.User.Id] = true + matterMessage.Props["matterbridge_"+b.uuid] = true   err := b.mh.Send(matterMessage)   if err != nil {   b.Log.Info(err) @@ -4157 +4187 @@ func (b *Bmattermost) skipMessage(message *matterclient.Message) bool {     // Ignore messages sent from matterbridge   if message.Post.Props != nil { - if _, ok := message.Post.Props["matterbridge_"+b.mc.User.Id].(bool); ok { + if _, ok := message.Post.Props["matterbridge_"+b.uuid].(bool); ok {   b.Log.Debugf("sent by matterbridge, ignoring")   return true   } diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go index cedb18e..1633d82 100644 --- a/bridge/slack/slack.go +++ b/bridge/slack/slack.go @@ -156 +157 @@ import (   "github.com/42wim/matterbridge/bridge/helper"   "github.com/42wim/matterbridge/matterhook"   "github.com/nlopes/slack" + "github.com/rs/xid"  )    type Bslack struct { @@ -256 +267 @@ type Bslack struct {   Usergroups []slack.UserGroup   si *slack.Info   channels []slack.Channel + uuid string   *bridge.Config   sync.RWMutex  } @@ -327 +347 @@ type Bslack struct {  const messageDeleted = "message_deleted"    func New(cfg *bridge.Config) bridge.Bridger { - return &Bslack{Config: cfg} + return &Bslack{Config: cfg, uuid: xid.New().String()}  }    func (b *Bslack) Command(cmd string) string { @@ -1777 +1797 @@ func (b *Bslack) Send(msg config.Message) (string, error) {   np.IconURL = msg.Avatar   }   // add a callback ID so we can see we created it - np.Attachments = append(np.Attachments, slack.Attachment{CallbackID: "matterbridge_" + b.si.User.ID}) + np.Attachments = append(np.Attachments, slack.Attachment{CallbackID: "matterbridge_" + b.uuid})   // add file attachments   np.Attachments = append(np.Attachments, b.createAttach(msg.Extra)...)   // add slack attachments (from another slack bridge) @@ -6577 +6597 @@ func (b *Bslack) skipMessageEvent(ev *slack.MessageEvent) bool {     // skip messages we made ourselves   if len(ev.Attachments) > 0 { - if ev.Attachments[0].CallbackID == "matterbridge_"+b.si.User.ID { + if ev.Attachments[0].CallbackID == "matterbridge_"+b.uuid {   return true   }   }