Пример #1
0
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
}