Files
SaveAny-Bot/bot/bot.go
2024-10-12 12:47:33 +08:00

56 lines
1.7 KiB
Go

package bot
import (
"os"
"github.com/amarnathcjd/gogram/telegram"
"github.com/krau/SaveAny-Bot/config"
"github.com/krau/SaveAny-Bot/logger"
)
var (
Client *telegram.Client
)
func Init() {
logger.L.Debug("Initializing bot...")
var err error
Client, err = telegram.NewClient(telegram.ClientConfig{
AppID: config.Cfg.Telegram.AppID,
AppHash: config.Cfg.Telegram.AppHash,
LogLevel: telegram.LogInfo,
})
if err != nil {
logger.L.Fatal("Failed to create telegram client: ", err)
os.Exit(1)
}
if err := Client.LoginBot(config.Cfg.Telegram.Token); err != nil {
logger.L.Fatal("Failed to login bot: ", err)
os.Exit(1)
}
logger.L.Info("Bot logged in")
_, err = Client.BotsSetBotCommands(&telegram.BotCommandScopeDefault{}, "", []*telegram.BotCommand{
{Command: "start", Description: "开始使用"},
})
if err != nil {
logger.L.Errorf("Failed to set bot commands: ", err)
}
logger.L.Info("Bot initialized")
}
func Run() {
if Client == nil {
Init()
}
Client.On("command:start", Start, telegram.FilterPrivate, telegram.FilterChats(config.Cfg.Telegram.Admins...))
Client.On("command:help", Help, telegram.FilterPrivate, telegram.FilterChats(config.Cfg.Telegram.Admins...))
Client.On("command:silent", ChangeSilentMode, telegram.FilterPrivate, telegram.FilterChats(config.Cfg.Telegram.Admins...))
Client.On("command:storage", SetDefaultStorage, telegram.FilterPrivate, telegram.FilterChats(config.Cfg.Telegram.Admins...))
Client.On("command:save", SaveCmd, telegram.FilterPrivate, telegram.FilterChats(config.Cfg.Telegram.Admins...))
Client.On(telegram.OnMessage, HandleFileMessage, telegram.FilterPrivate, telegram.FilterChats(config.Cfg.Telegram.Admins...), telegram.FilterMedia)
Client.On("callback:add", AddToQueue)
Client.Idle()
}