diff options
Diffstat (limited to 'bridge/slack/slack.go')
-rw-r--r-- | bridge/slack/slack.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/bridge/slack/slack.go b/bridge/slack/slack.go index fa847db9..21163116 100644 --- a/bridge/slack/slack.go +++ b/bridge/slack/slack.go @@ -163,6 +163,8 @@ func (b *Bslack) Send(msg config.Message) (string, error) { np.IconURL = msg.Avatar } np.Attachments = append(np.Attachments, slack.Attachment{CallbackID: "matterbridge"}) + np.Attachments = append(np.Attachments, b.createAttach(msg.Extra)...) + // replace mentions np.LinkNames = 1 @@ -389,3 +391,28 @@ func (b *Bslack) replaceURL(text string) string { } return text } + +func (b *Bslack) createAttach(extra []interface{}) []slack.Attachment { + var attachs []slack.Attachment + if extra != nil { + for _, v := range extra { + entry := v.(map[string]interface{}) + s := slack.Attachment{} + s.Fallback = entry["fallback"].(string) + s.Color = entry["color"].(string) + s.Pretext = entry["pretext"].(string) + s.AuthorName = entry["author_name"].(string) + s.AuthorLink = entry["author_link"].(string) + s.AuthorIcon = entry["author_icon"].(string) + s.Title = entry["title"].(string) + s.TitleLink = entry["title_link"].(string) + s.Text = entry["text"].(string) + s.ImageURL = entry["image_url"].(string) + s.ThumbURL = entry["thumb_url"].(string) + s.Footer = entry["footer"].(string) + s.FooterIcon = entry["footer_icon"].(string) + attachs = append(attachs, s) + } + } + return attachs +} |