33 lines
718 B
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
|
|
|
|
}
|