yoake/internal/comm/telegram/commands.go

33 lines
718 B
Go

package telegram
import tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
func (b *Bot) RegisterCommand(cmd string, description string, handler CommandHandler) error {
existingCommand, err := b.client.GetMyCommands()
if err != nil {
return err
}
found := false
for i, command := range existingCommand {
if command.Command == cmd {
found = true
existingCommand[i].Description = description
}
}
if !found {
existingCommand = append(existingCommand, tgbotapi.BotCommand{
Command: cmd,
Description: description,
})
}
if _, err := b.client.Request(tgbotapi.NewSetMyCommands(existingCommand...)); err != nil {
return err
}
b.cmdHandlers[cmd] = handler
return nil
}