go-watch/notifiers/telegram.go

40 lines
902 B
Go

package notifiers
import (
"log"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
"github.com/spf13/viper"
)
type TelegramNotifier struct {
Bot *tgbotapi.BotAPI
Token string
Debug bool
}
func (telegram TelegramNotifier) Open() bool {
bot, err := tgbotapi.NewBotAPI(viper.GetString("telegram.token"))
if err != nil {
log.Println("Could not start Telegram notifier:\n", err)
return false
}
telegram.Bot = bot
bot.Debug = viper.GetBool("telegram.debug")
log.Printf("Authorized telegram bot: %s", bot.Self.UserName)
return true
}
func (telegram TelegramNotifier) Message(message string) bool {
msg := tgbotapi.NewMessage(viper.GetInt64("telegram.chat"), message)
_, err := telegram.Bot.Send(msg)
if err != nil {
log.Println("Could not send Telegram message:\n", err)
return false
}
return true
}
func (telegram TelegramNotifier) Close() bool {
return true
}