From 6c00cab0f40e96a4146f5a4e4e56c1ed893c34ec Mon Sep 17 00:00:00 2001 From: jon4hz Date: Sat, 23 Mar 2024 10:52:46 +0100 Subject: [PATCH] feat: switch telegram bot library --- go.mod | 3 +-- go.sum | 6 ++---- internal/notif/telegram/client.go | 25 +++++++++++++++---------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/go.mod b/go.mod index 8a0d6ed0e..2ed4a5844 100644 --- a/go.mod +++ b/go.mod @@ -4,6 +4,7 @@ go 1.21 require ( github.com/AlecAivazis/survey/v2 v2.3.7 + github.com/PaulSonOfLars/gotgbot/v2 v2.0.0-rc.25 github.com/alecthomas/kong v0.9.0 github.com/bmatcuk/doublestar/v3 v3.0.0 github.com/containerd/containerd v1.7.14 @@ -18,7 +19,6 @@ require ( github.com/eclipse/paho.mqtt.golang v1.4.3 github.com/go-gomail/gomail v0.0.0-20160411212932-81ebce5c23df github.com/go-playground/validator/v10 v10.19.0 - github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible github.com/gregdel/pushover v1.3.0 github.com/hako/durafmt v0.0.0-20210608085754-5c1018a4e16b github.com/hashicorp/nomad/api v0.0.0-20231213195942-64e3dca9274b // v1.7.2 @@ -124,7 +124,6 @@ require ( github.com/spf13/pflag v1.0.5 // indirect github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect - github.com/technoweenie/multipartstreamer v1.0.1 // indirect github.com/ulikunitz/xz v0.5.11 // indirect github.com/vanng822/css v0.0.0-20190504095207-a21e860bcd04 // indirect github.com/vanng822/go-premailer v0.0.0-20191214114701-be27abe028fe // indirect diff --git a/go.sum b/go.sum index aca45de3e..684758196 100644 --- a/go.sum +++ b/go.sum @@ -15,6 +15,8 @@ github.com/Microsoft/hcsshim v0.12.0-rc.3 h1:5GNGrobGs/sN/0nFO21W9k4lFn+iXXZAE8f github.com/Microsoft/hcsshim v0.12.0-rc.3/go.mod h1:WuNfcaYNaw+KpCEsZCIM6HCEmu0c5HfXpi+dDSmveP0= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= +github.com/PaulSonOfLars/gotgbot/v2 v2.0.0-rc.25 h1:VCZg3OsKY19PcXBRRYk2ExeZ3mC8Hm4LqcXcINuFyY4= +github.com/PaulSonOfLars/gotgbot/v2 v2.0.0-rc.25/go.mod h1:kL1v4iIjlalwm3gCYGvF4NLa3hs+aKEfRkNJvj4aoDU= github.com/PuerkitoBio/goquery v1.5.0/go.mod h1:qD2PgZ9lccMbQlc7eEOjaeRlFQON7xY8kdmcsrnKqMg= github.com/PuerkitoBio/goquery v1.8.1 h1:uQxhNlArOIdbrH1tr0UXwdVFgDcZDrZVdcpygAcwmWM= github.com/PuerkitoBio/goquery v1.8.1/go.mod h1:Q8ICL1kNUJ2sXGoAhPGUdYDJvgQgHzJsnnd3H7Ho5jQ= @@ -122,8 +124,6 @@ github.com/go-playground/validator/v10 v10.19.0 h1:ol+5Fu+cSq9JD7SoSqe04GMI92cbn github.com/go-playground/validator/v10 v10.19.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= -github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible h1:2cauKuaELYAEARXRkq2LrJ0yDDv1rW7+wrTEdVL3uaU= -github.com/go-telegram-bot-api/telegram-bot-api v4.6.4+incompatible/go.mod h1:qf9acutJ8cwBUhm1bqgz6Bei9/C/c93FPDljKWwsOgM= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -321,8 +321,6 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/technoweenie/multipartstreamer v1.0.1 h1:XRztA5MXiR1TIRHxH2uNxXxaIkKQDeX7m2XsSOlQEnM= -github.com/technoweenie/multipartstreamer v1.0.1/go.mod h1:jNVxdtShOxzAsukZwTSw6MDx5eUJoiEBsSvzDU9uzog= github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= diff --git a/internal/notif/telegram/client.go b/internal/notif/telegram/client.go index 49422a125..b46dfa704 100644 --- a/internal/notif/telegram/client.go +++ b/internal/notif/telegram/client.go @@ -2,14 +2,15 @@ package telegram import ( "encoding/json" + "net/http" "strings" "text/template" + "github.com/PaulSonOfLars/gotgbot/v2" "github.com/crazy-max/diun/v4/internal/model" "github.com/crazy-max/diun/v4/internal/msg" "github.com/crazy-max/diun/v4/internal/notif/notifier" "github.com/crazy-max/diun/v4/pkg/utl" - tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api" "github.com/pkg/errors" ) @@ -53,9 +54,17 @@ func (c *Client) Send(entry model.NotifEntry) error { } } - bot, err := tgbotapi.NewBotAPI(token) + bot, err := gotgbot.NewBot(token, &gotgbot.BotOpts{ + BotClient: &gotgbot.BaseBotClient{ + Client: http.Client{}, + DefaultRequestOpts: &gotgbot.RequestOpts{ + Timeout: gotgbot.DefaultTimeout, + APIURL: gotgbot.DefaultAPIURL, + }, + }, + }) if err != nil { - return err + return errors.Wrap(err, "failed to create telegram bot client") } message, err := msg.New(msg.Options{ @@ -82,13 +91,9 @@ func (c *Client) Send(entry model.NotifEntry) error { } for _, chatID := range chatIDs { - _, err := bot.Send(tgbotapi.MessageConfig{ - BaseChat: tgbotapi.BaseChat{ - ChatID: chatID, - }, - Text: string(body), - ParseMode: "markdown", - DisableWebPagePreview: true, + _, err := bot.SendMessage(chatID, string(body), &gotgbot.SendMessageOpts{ + ParseMode: gotgbot.ParseModeMarkdown, + LinkPreviewOptions: &gotgbot.LinkPreviewOptions{IsDisabled: true}, }) if err != nil { return err