package tgbot import ( "log" "net/http" "net/url" "tg-mc/conf" tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" "github.com/sirupsen/logrus" ) var ( bot *tgbotapi.BotAPI ) func Run(sendFunc func(string) error) { var err error HttpProxy := conf.GetBotSettings().HTTPProxy proxyUrl, err := url.Parse(HttpProxy) if err != nil { log.Panic(err, "HTTP_PROXY environment variable is not set correctly") } client := &http.Client{Transport: &http.Transport{Proxy: http.ProxyURL(proxyUrl)}} bot, err = tgbotapi.NewBotAPIWithClient( conf.GetBotSettings().BotToken, tgbotapi.APIEndpoint, client) if err != nil { log.Panic(err) } bot.Debug = true log.Printf("Authorized on account %s", bot.Self.UserName) u := tgbotapi.NewUpdate(0) u.Timeout = 60 updates := bot.GetUpdatesChan(u) for update := range updates { if update.Message != nil { logrus.Infof("[%s] %s", update.Message.From.UserName, update.Message.Text) if update.Message.Command() == "talk" { logrus.Infof("id is %d", update.Message.Chat.ID) sendFunc(update.Message.CommandArguments()) } } } } func SendMsg(msg string) error { msgT := tgbotapi.NewMessage(conf.GetBotSettings().GroupID, msg) _, err := bot.Send(msgT) return err }