Thumbnail

rani/matterbridge.git

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

commit e5fd301923410991163479667a2a49a2301221d3 Author: Patrick Connolly <patrick.c.connolly@gmail.com> Date: Sun Dec 02 02:55:35 2018 +0000 Update nlopes/slack to 4.1-dev (#595) diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go index a38bbb5..9b64f7a 100644 --- a/bridge/slack/slack.go +++ b/bridge/slack/slack.go @@ -30312 +30313 @@ func (b *Bslack) sendRTM(msg config.Message) (string, error) {   return msg.ID, err   }   - messageParameters := b.prepareMessageParameters(&msg) -   // Upload a file if it exists.   if msg.Extra != nil { - for _, rmsg := range helper.HandleExtra(&msg, b.General) { - _, _, err = b.rtm.PostMessage(channelInfo.ID, rmsg.Username+rmsg.Text, *messageParameters) + extraMsgs := helper.HandleExtra(&msg, b.General) + for i := range extraMsgs { + rmsg := &extraMsgs[i] + rmsg.Text = rmsg.Username + rmsg.Text + _, err = b.postMessage(rmsg, channelInfo)   if err != nil {   b.Log.Error(err)   } @@ -3187 +3197 @@ func (b *Bslack) sendRTM(msg config.Message) (string, error) {   }     // Post message. - return b.postMessage(&msg, messageParameters, channelInfo) + return b.postMessage(&msg, channelInfo)  }    func (b *Bslack) updateTopicOrPurpose(msg *config.Message, channelInfo *slack.Channel) (bool, error) { @@ -3919 +39210 @@ func (b *Bslack) editMessage(msg *config.Message, channelInfo *slack.Channel) (b   if msg.ID == "" {   return false, nil   } - + messageOptions := b.prepareMessageOptions(msg)   for { - _, _, _, err := b.rtm.UpdateMessage(channelInfo.ID, msg.ID, msg.Text) + messageOptions = append(messageOptions, slack.MsgOptionText(msg.Text, false)) + _, _, _, err := b.rtm.UpdateMessage(channelInfo.ID, msg.ID, messageOptions...)   if err == nil {   return true, nil   } @@ -40513 +40715 @@ func (b *Bslack) editMessage(msg *config.Message, channelInfo *slack.Channel) (b   }  }   -func (b *Bslack) postMessage(msg *config.Message, messageParameters *slack.PostMessageParameters, channelInfo *slack.Channel) (string, error) { +func (b *Bslack) postMessage(msg *config.Message, channelInfo *slack.Channel) (string, error) {   // don't post empty messages   if msg.Text == "" {   return "", nil   } + messageOptions := b.prepareMessageOptions(msg) + messageOptions = append(messageOptions, slack.MsgOptionText(msg.Text, false))   for { - _, id, err := b.rtm.PostMessage(channelInfo.ID, msg.Text, *messageParameters) + _, id, err := b.rtm.PostMessage(channelInfo.ID, messageOptions...)   if err == nil {   return id, nil   } @@ -4617 +4657 @@ func (b *Bslack) uploadFile(msg *config.Message, channelID string) {   }  }   -func (b *Bslack) prepareMessageParameters(msg *config.Message) *slack.PostMessageParameters { +func (b *Bslack) prepareMessageOptions(msg *config.Message) []slack.MsgOption {   params := slack.NewPostMessageParameters()   if b.GetBool(useNickPrefixConfig) {   params.AsUser = true @@ -47317 +47723 @@ func (b *Bslack) prepareMessageParameters(msg *config.Message) *slack.PostMessag   if msg.Avatar != "" {   params.IconURL = msg.Avatar   } + + var attachments []slack.Attachment   // add a callback ID so we can see we created it - params.Attachments = append(params.Attachments, slack.Attachment{CallbackID: "matterbridge_" + b.uuid}) + attachments = append(attachments, slack.Attachment{CallbackID: "matterbridge_" + b.uuid})   // add file attachments - params.Attachments = append(params.Attachments, b.createAttach(msg.Extra)...) + attachments = append(attachments, b.createAttach(msg.Extra)...)   // add slack attachments (from another slack bridge)   if msg.Extra != nil {   for _, attach := range msg.Extra[sSlackAttachment] { - params.Attachments = append(params.Attachments, attach.([]slack.Attachment)...) + attachments = append(attachments, attach.([]slack.Attachment)...)   }   } - return &params + + var opts []slack.MsgOption + opts = append(opts, slack.MsgOptionAttachments(attachments...)) + opts = append(opts, slack.MsgOptionPostMessageParameters(params)) + return opts  }    func (b *Bslack) createAttach(extra map[string][]interface{}) []slack.Attachment { diff --git a/go.mod b/go.mod index 442e97c..99041ad 100644 --- a/go.mod +++ b/go.mod @@ -377 +377 @@ require (   github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474 // indirect   github.com/mrexodia/wray v0.0.0-20160318003008-78a2c1f284ff // indirect   github.com/nicksnyder/go-i18n v1.4.0 // indirect - github.com/nlopes/slack v0.4.0 + github.com/nlopes/slack v0.4.1-0.20181111125009-5963eafd777b   github.com/onsi/ginkgo v1.6.0 // indirect   github.com/onsi/gomega v1.4.1 // indirect   github.com/paulrosania/go-charset v0.0.0-20151028000031-621bb39fcc83 diff --git a/go.sum b/go.sum index 96c1204..8f341af 100644 --- a/go.sum +++ b/go.sum @@ -868 +868 @@ github.com/mrexodia/wray v0.0.0-20160318003008-78a2c1f284ff h1:HLGD5/9UxxfEuO9Dt  github.com/mrexodia/wray v0.0.0-20160318003008-78a2c1f284ff/go.mod h1:B8jLfIIPn2sKyWr0D7cL2v7tnrDD5z291s2Zypdu89E=  github.com/nicksnyder/go-i18n v1.4.0 h1:AgLl+Yq7kg5OYlzCgu9cKTZOyI4tD/NgukKqLqC8E+I=  github.com/nicksnyder/go-i18n v1.4.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= -github.com/nlopes/slack v0.4.0 h1:OVnHm7lv5gGT5gkcHsZAyw++oHVFihbjWbL3UceUpiA= -github.com/nlopes/slack v0.4.0/go.mod h1:jVI4BBK3lSktibKahxBF74txcK2vyvkza1z/+rRnVAM= +github.com/nlopes/slack v0.4.1-0.20181111125009-5963eafd777b h1:8ncrr7Xps0GafXIxBzrq1qSjy1zhiCDp/9C4cOrE+GU= +github.com/nlopes/slack v0.4.1-0.20181111125009-5963eafd777b/go.mod h1:jVI4BBK3lSktibKahxBF74txcK2vyvkza1z/+rRnVAM=  github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=  github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=  github.com/onsi/gomega v1.4.1 h1:PZSj/UFNaVp3KxrzHOcS7oyuWA7LoOY/77yCTEFu21U=