commit
54104a08f9
28
bot.go
28
bot.go
|
@ -1065,3 +1065,31 @@ func (bot *BotAPI) SetMyCommands(commands []BotCommand) error {
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EscapeText takes an input text and escape Telegram markup symbols.
|
||||||
|
// In this way we can send a text without being afraid of having to escape the characters manually.
|
||||||
|
// Note that you don't have to include the formatting style in the input text, or it will be escaped too.
|
||||||
|
// If there is an error, an empty string will be returned.
|
||||||
|
//
|
||||||
|
// parseMode is the text formatting mode (ModeMarkdown, ModeMarkdownV2 or ModeHTML)
|
||||||
|
// text is the input string that will be escaped
|
||||||
|
func EscapeText(parseMode string, text string) string {
|
||||||
|
var replacer *strings.Replacer
|
||||||
|
|
||||||
|
if parseMode == ModeHTML {
|
||||||
|
replacer = strings.NewReplacer("<", "<", ">", ">", "&", "&")
|
||||||
|
} else if parseMode == ModeMarkdown {
|
||||||
|
replacer = strings.NewReplacer("_", "\\_", "*", "\\*", "`", "\\`", "[", "\\[")
|
||||||
|
} else if parseMode == ModeMarkdownV2 {
|
||||||
|
replacer = strings.NewReplacer(
|
||||||
|
"_", "\\_", "*", "\\*", "[", "\\[", "]", "\\]", "(",
|
||||||
|
"\\(", ")", "\\)", "~", "\\~", "`", "\\`", ">", "\\>",
|
||||||
|
"#", "\\#", "+", "\\+", "-", "\\-", "=", "\\=", "|",
|
||||||
|
"\\|", "{", "\\{", "}", "\\}", ".", "\\.", "!", "\\!",
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
return replacer.Replace(text)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue