worker/senders/tg_sender.go

46 lines
869 B
Go
Raw Normal View History

package senders
import (
"fmt"
"gopkg.in/tucnak/telebot.v2"
"time"
)
type TgSender struct {
bot *telebot.Bot
}
func NewTgSender(tgToken string) (*TgSender, error) {
bot, err := telebot.NewBot(telebot.Settings{
Token: tgToken,
Poller: &telebot.LongPoller{Timeout: 10 * time.Second},
})
if err != nil {
return nil, fmt.Errorf("error creating Telegram bot: %w", err)
}
return &TgSender{bot: bot}, nil
}
func (tg *TgSender) SendLead(data LeadData) error {
2024-06-24 15:46:00 +00:00
text, err := generateTextFromTemplate(data.TemplateData, data.Template)
if err != nil {
return err
}
chat := data.To.(int64)
_, err = tg.bot.Send(telebot.ChatID(chat), text, &telebot.SendOptions{
ParseMode: telebot.ModeHTML,
})
if err != nil {
return fmt.Errorf("error sending Telegram message: %w", err)
}
return nil
}
func (tg *TgSender) Name() string {
return "telegram"
}