func flattenSlackMessage(rtm *slack.RTM, text string) string { text = slackLink1Regex.ReplaceAllString(text, "$1") text = slackLink2Regex.ReplaceAllString(text, "$1") text = slackLink3Regex.ReplaceAllString(text, "$1") text = slackActionRegex.ReplaceAllString(text, "@$1") text = slackEmojiRegex.ReplaceAllStringFunc(text, func(text string) string { if emoji, ok := emojis[text[1:len(text)-1]]; ok { return emoji } return text }) text = slackReference1Regex.ReplaceAllString(text, "$1$4") text = slackReference2Regex.ReplaceAllStringFunc(text, func(text string) string { switch text[:2] { case "<#": ch, err := rtm.GetChannelInfo(text[2 : len(text)-1]) if err == nil { return "#" + ch.Name } case "<@": user, err := rtm.GetUserInfo(text[2 : len(text)-1]) if err == nil { return "@" + user.Name } } return text }) text = html.UnescapeString(text) return text }