From 310c99eeb6ccb12ee15e8fbcd558580908add895 Mon Sep 17 00:00:00 2001 From: Artyom Belousov Date: Fri, 25 Jun 2021 13:01:55 +0300 Subject: [PATCH] Fixed bug with card _____ in Telegram --- internal/telegram/sender.go | 4 +++- internal/telegram/sender_test.go | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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) +}