commit e5fd301923410991163479667a2a49a2301221d3
Author: Patrick Connolly <patrick.c.connolly@gmail.com>
Date: Sun Dec 02 02:55:35 2018 +0000
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 ¶ms
+
+ 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=