feat: announce command list

This commit is contained in:
Yiyang Kang 2022-11-23 04:33:23 +08:00
parent 37dffe56ce
commit 440d36b291
Signed by: kkyy
GPG Key ID: 80FD317ECAF06CC3
2 changed files with 22 additions and 2 deletions

10
cfg.go
View File

@ -10,8 +10,9 @@ import (
) )
type Config struct { type Config struct {
AdminUIDs map[int64]struct{} AdminUIDs map[int64]struct{}
TGBotToken string TGBotToken string
TGAnnounceCommands bool
WatchedInterface string WatchedInterface string
MonthlyTrafficLimitGiB int MonthlyTrafficLimitGiB int
@ -42,6 +43,11 @@ func LoadCfg() error {
cfg.AdminUIDs[uid] = struct{}{} cfg.AdminUIDs[uid] = struct{}{}
} }
announceCmdsEnv := os.Getenv("TG_ANNOUNCE_CMDS")
if !lo.Contains([]string{"", "no", "false", "0"}, strings.ToLower(announceCmdsEnv)) {
cfg.TGAnnounceCommands = true
}
cfg.WatchedInterface = "eth0" cfg.WatchedInterface = "eth0"
if iface := os.Getenv("TG_WATCHED_INTERFACE"); iface != "" { if iface := os.Getenv("TG_WATCHED_INTERFACE"); iface != "" {
cfg.WatchedInterface = iface cfg.WatchedInterface = iface

14
main.go
View File

@ -6,6 +6,7 @@ import (
"syscall" "syscall"
"go.uber.org/zap" "go.uber.org/zap"
tele "gopkg.in/telebot.v3"
"git.gensokyo.cafe/kkyy/tgbot_misaka_5882f7/utils" "git.gensokyo.cafe/kkyy/tgbot_misaka_5882f7/utils"
) )
@ -28,6 +29,19 @@ func runBot() {
logger.Fatalw("Failed to initialize bot", "err", err) logger.Fatalw("Failed to initialize bot", "err", err)
} }
// Announce commands
if config.TGAnnounceCommands {
logger.Info("Announcing commands...")
if err = bot.SetCommands([]tele.Command{
{Text: "traffic", Description: "Show traffic usage."},
{Text: "dig", Description: "Diggy diggy dig."},
{Text: "year_progress", Description: "Time doesn't wait."},
}); err != nil {
logger.Fatalw("Failed to announce commands", "err", err)
}
}
botFinCh := utils.WaitFor(bot.Start) botFinCh := utils.WaitFor(bot.Start)
logger.Infow("Bot started", "username", bot.Me.Username) logger.Infow("Bot started", "username", bot.Me.Username)