Skip to content

Commit

Permalink
feat: split messages over telegram limit
Browse files Browse the repository at this point in the history
  • Loading branch information
davidramiro committed Feb 4, 2025
1 parent b6ee07c commit 32f89e6
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions internal/adapters/sender/telegram.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/rs/zerolog/log"
)

//go:generate mockery --name TelegramBot
const TelegramMessageLimit = 4096

type TelegramSender struct {
bot *bot.Bot
Expand All @@ -23,16 +23,24 @@ func NewTelegramSender(bot *bot.Bot) *TelegramSender {
}

func (s *TelegramSender) SendMessageReply(ctx context.Context, chatID int64, messageID int, message string) error {
_, err := s.bot.SendMessage(ctx, &bot.SendMessageParams{
ChatID: chatID,
Text: message,
ReplyParameters: &models.ReplyParameters{
MessageID: messageID,
ChatID: chatID,
},
})
replies := (len(message) + TelegramMessageLimit - 1) / TelegramMessageLimit
for i := range replies {
substr := message[i*TelegramMessageLimit : min(len(message), (i+1)*TelegramMessageLimit)]
_, err := s.bot.SendMessage(ctx, &bot.SendMessageParams{
ChatID: chatID,
Text: substr,
ReplyParameters: &models.ReplyParameters{
MessageID: messageID,
ChatID: chatID,
},
})

if err != nil {
return err
}
}

return err
return nil
}

func (s *TelegramSender) SendImageURLReply(ctx context.Context, chatID int64, messageID int, url string) error {
Expand Down

0 comments on commit 32f89e6

Please sign in to comment.