diff --git a/internal/telegram/sender.go b/internal/telegram/sender.go index b839f94..870db38 100644 --- a/internal/telegram/sender.go +++ b/internal/telegram/sender.go @@ -2,6 +2,7 @@ package telegram import ( "fmt" + "strings" tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api" "gitlab.com/flygrounder/go-mtg-vk/internal/cardsinfo" @@ -24,7 +25,8 @@ func (h *Sender) Send(userId int64, message string) { } func formatCardPrices(name string, prices []cardsinfo.ScgCardPrice) string { - message := fmt.Sprintf("Оригинальное название: %v\n\n", name) + escapedName := strings.ReplaceAll(name, "_", "\\_") + message := fmt.Sprintf("Оригинальное название: %v\n\n", escapedName) for i, v := range prices { message += fmt.Sprintf("%v. %v", i+1, formatPrice(v)) } diff --git a/internal/telegram/sender_test.go b/internal/telegram/sender_test.go index 1fd260d..54552d2 100644 --- a/internal/telegram/sender_test.go +++ b/internal/telegram/sender_test.go @@ -23,3 +23,9 @@ func Test_formatCardPrices(t *testing.T) { result := formatCardPrices("card", prices) assert.Equal(t, "Оригинальное название: card\n\n1. [Alpha](scg1): 1\n2. [Beta](scg2): 2\n", result) } + +func Test_formatCardPricesEscapeUnderscore(t *testing.T) { + prices := []cardsinfo.ScgCardPrice{} + result := formatCardPrices("_____", prices) + assert.Equal(t, "Оригинальное название: \\_\\_\\_\\_\\_\n\nЦен не найдено\n", result) +}