Merge pull request #374 from bcmk/upstream-my-commands

getMyCommands / setMyCommands implemented
bot-api-6.1
TJ Horner 2020-10-02 21:17:27 -07:00 committed by GitHub
commit 05e04b526c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 35 additions and 0 deletions

29
bot.go
View File

@ -1036,3 +1036,32 @@ func (bot *BotAPI) GetStickerSet(config GetStickerSetConfig) (StickerSet, error)
} }
return stickerSet, nil return stickerSet, nil
} }
// GetMyCommands gets the current list of the bot's commands.
func (bot *BotAPI) GetMyCommands() ([]BotCommand, error) {
res, err := bot.MakeRequest("getMyCommands", nil)
if err != nil {
return nil, err
}
var commands []BotCommand
err = json.Unmarshal(res.Result, &commands)
if err != nil {
return nil, err
}
return commands, nil
}
// SetMyCommands changes the list of the bot's commands.
func (bot *BotAPI) SetMyCommands(commands []BotCommand) error {
v := url.Values{}
data, err := json.Marshal(commands)
if err != nil {
return err
}
v.Add("commands", string(data))
_, err = bot.MakeRequest("setMyCommands", v)
if err != nil {
return err
}
return nil
}

View File

@ -1005,3 +1005,9 @@ type Error struct {
func (e Error) Error() string { func (e Error) Error() string {
return e.Message return e.Message
} }
// BotCommand represents a bot command.
type BotCommand struct {
Command string `json:"command"`
Description string `json:"description"`
}