mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-24 11:42:03 -08:00
Improve Slack attachments formatting (slack) (#1807)
* Improve Slack attachments formatting (slack) * Add TitleLink * Add Footer * Fix linter issues
This commit is contained in:
parent
2fa96ec0ed
commit
700b95546b
@ -282,6 +282,13 @@ func (b *Bslack) handleStatusEvent(ev *slack.MessageEvent, rmsg *config.Message)
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getMessageTitle(attach *slack.Attachment) string {
|
||||||
|
if attach.TitleLink != "" {
|
||||||
|
return fmt.Sprintf("[%s](%s)\n", attach.Title, attach.TitleLink)
|
||||||
|
}
|
||||||
|
return attach.Title
|
||||||
|
}
|
||||||
|
|
||||||
func (b *Bslack) handleAttachments(ev *slack.MessageEvent, rmsg *config.Message) {
|
func (b *Bslack) handleAttachments(ev *slack.MessageEvent, rmsg *config.Message) {
|
||||||
// File comments are set by the system (because there is no username given).
|
// File comments are set by the system (because there is no username given).
|
||||||
if ev.SubType == sFileComment {
|
if ev.SubType == sFileComment {
|
||||||
@ -290,12 +297,15 @@ func (b *Bslack) handleAttachments(ev *slack.MessageEvent, rmsg *config.Message)
|
|||||||
|
|
||||||
// See if we have some text in the attachments.
|
// See if we have some text in the attachments.
|
||||||
if rmsg.Text == "" {
|
if rmsg.Text == "" {
|
||||||
for _, attach := range ev.Attachments {
|
for i, attach := range ev.Attachments {
|
||||||
if attach.Text != "" {
|
if attach.Text != "" {
|
||||||
if attach.Title != "" {
|
if attach.Title != "" {
|
||||||
rmsg.Text = attach.Title + "\n"
|
rmsg.Text = getMessageTitle(&ev.Attachments[i])
|
||||||
}
|
}
|
||||||
rmsg.Text += attach.Text
|
rmsg.Text += attach.Text
|
||||||
|
if attach.Footer != "" {
|
||||||
|
rmsg.Text += "\n\n" + attach.Footer
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
rmsg.Text = attach.Fallback
|
rmsg.Text = attach.Fallback
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ var (
|
|||||||
mentionRE = regexp.MustCompile(`<@([a-zA-Z0-9]+)>`)
|
mentionRE = regexp.MustCompile(`<@([a-zA-Z0-9]+)>`)
|
||||||
channelRE = regexp.MustCompile(`<#[a-zA-Z0-9]+\|(.+?)>`)
|
channelRE = regexp.MustCompile(`<#[a-zA-Z0-9]+\|(.+?)>`)
|
||||||
variableRE = regexp.MustCompile(`<!((?:subteam\^)?[a-zA-Z0-9]+)(?:\|@?(.+?))?>`)
|
variableRE = regexp.MustCompile(`<!((?:subteam\^)?[a-zA-Z0-9]+)(?:\|@?(.+?))?>`)
|
||||||
urlRE = regexp.MustCompile(`<(.*?)(\|.*?)?>`)
|
urlRE = regexp.MustCompile(`<([^<\|]+)\|([^>]+)>`)
|
||||||
codeFenceRE = regexp.MustCompile(`(?m)^` + "```" + `\w+$`)
|
codeFenceRE = regexp.MustCompile(`(?m)^` + "```" + `\w+$`)
|
||||||
topicOrPurposeRE = regexp.MustCompile(`(?s)(@.+) (cleared|set)(?: the)? channel (topic|purpose)(?:: (.*))?`)
|
topicOrPurposeRE = regexp.MustCompile(`(?s)(@.+) (cleared|set)(?: the)? channel (topic|purpose)(?:: (.*))?`)
|
||||||
)
|
)
|
||||||
@ -181,14 +181,7 @@ func (b *Bslack) replaceVariable(text string) string {
|
|||||||
|
|
||||||
// @see https://api.slack.com/docs/message-formatting#linking_to_urls
|
// @see https://api.slack.com/docs/message-formatting#linking_to_urls
|
||||||
func (b *Bslack) replaceURL(text string) string {
|
func (b *Bslack) replaceURL(text string) string {
|
||||||
for _, r := range urlRE.FindAllStringSubmatch(text, -1) {
|
return urlRE.ReplaceAllString(text, "[${2}](${1})")
|
||||||
if len(strings.TrimSpace(r[2])) == 1 { // A display text separator was found, but the text was blank
|
|
||||||
text = strings.Replace(text, r[0], "", 1)
|
|
||||||
} else {
|
|
||||||
text = strings.Replace(text, r[0], r[1], 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return text
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *Bslack) replaceb0rkedMarkDown(text string) string {
|
func (b *Bslack) replaceb0rkedMarkDown(text string) string {
|
||||||
|
Loading…
Reference in New Issue
Block a user