2023-05-17 14:36:40 +08:00

60 lines
1.2 KiB
Go

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
}