forked from jshiffer/matterbridge
Add share support between slack instances. Closes #369
This commit is contained in:
parent
4f2ae7b73f
commit
78238c85d4
@ -137,8 +137,7 @@ func (b *Bslack) Send(msg config.Message) (string, error) {
|
||||
if b.Config.WebhookURL != "" {
|
||||
if msg.Extra != nil {
|
||||
for _, rmsg := range helper.HandleExtra(&msg, b.General) {
|
||||
matterMessage := matterhook.OMessage{IconURL: b.Config.IconURL, Channel: channel, UserName: rmsg.Username,
|
||||
Text: rmsg.Text}
|
||||
matterMessage := matterhook.OMessage{IconURL: b.Config.IconURL, Channel: channel, UserName: rmsg.Username, Text: rmsg.Text}
|
||||
b.mh.Send(matterMessage)
|
||||
}
|
||||
if len(msg.Extra["file"]) > 0 {
|
||||
@ -150,8 +149,15 @@ func (b *Bslack) Send(msg config.Message) (string, error) {
|
||||
}
|
||||
}
|
||||
}
|
||||
// if we have native slack_attachments add them
|
||||
var attachs []slack.Attachment
|
||||
if len(msg.Extra["slack_attachment"]) > 0 {
|
||||
for _, attach := range msg.Extra["slack_attachment"] {
|
||||
attachs = append(attachs, attach.([]slack.Attachment)...)
|
||||
}
|
||||
}
|
||||
|
||||
matterMessage := matterhook.OMessage{IconURL: b.Config.IconURL}
|
||||
matterMessage := matterhook.OMessage{IconURL: b.Config.IconURL, Attachments: attachs}
|
||||
matterMessage.Channel = channel
|
||||
matterMessage.UserName = nick
|
||||
matterMessage.Type = ""
|
||||
@ -178,6 +184,11 @@ func (b *Bslack) Send(msg config.Message) (string, error) {
|
||||
}
|
||||
np.Attachments = append(np.Attachments, slack.Attachment{CallbackID: "matterbridge"})
|
||||
np.Attachments = append(np.Attachments, b.createAttach(msg.Extra)...)
|
||||
if len(msg.Extra["slack_attachment"]) > 0 {
|
||||
for _, attach := range msg.Extra["slack_attachment"] {
|
||||
np.Attachments = append(np.Attachments, attach.([]slack.Attachment)...)
|
||||
}
|
||||
}
|
||||
|
||||
// replace mentions
|
||||
np.LinkNames = 1
|
||||
@ -308,6 +319,11 @@ func (b *Bslack) handleSlack() {
|
||||
msg.Event = config.EVENT_TOPIC_CHANGE
|
||||
}
|
||||
|
||||
// save the attachments, so that we can send them to other slack (compatible) bridges
|
||||
if len(message.Raw.Attachments) > 0 {
|
||||
msg.Extra["slack_attachment"] = append(msg.Extra["slack_attachment"], message.Raw.Attachments)
|
||||
}
|
||||
|
||||
// if we have a file attached, download it (in memory) and put a pointer to it in msg.Extra
|
||||
if message.Raw.File != nil {
|
||||
// limit to 1MB for now
|
||||
|
Loading…
Reference in New Issue
Block a user