all repos — telegram-bot-api @ 57be98801107f19622d22a718cdc4a5f52cc0712

Golang bindings for the Telegram Bot API

add setChatPhoto method
Oleksandr Savchuk mrxlinch@gmail.com
Mon, 05 Mar 2018 17:04:37 +0200
commit

57be98801107f19622d22a718cdc4a5f52cc0712

parent

6e69f99d113a3ac6537961e7ea3e1b1160f688eb

3 files changed, 58 insertions(+), 0 deletions(-)

jump to
M bot.gobot.go

@@ -922,3 +922,15 @@ bot.debugLog(config.method(), v, nil)

return bot.MakeRequest(config.method(), v) } + +// SetChatPhoto change photo of chat. +func (bot *BotAPI) SetChatPhoto(config SetChatPhotoConfig) (APIResponse, error) { + params, err := config.params() + if err != nil { + return APIResponse{}, err + } + + file := config.getFile() + + return bot.UploadFile(config.method(), params, config.name(), file) +}
M configs.goconfigs.go

@@ -1111,3 +1111,18 @@ v.Add("description", config.Description)

return v, nil } + +// SetChatPhotoConfig contains information for change chat photo +type SetChatPhotoConfig struct { + BaseFile +} + +// name returns the field name for the Photo. +func (config SetChatPhotoConfig) name() string { + return "photo" +} + +// method returns Telegram API method name for sending Photo. +func (config SetChatPhotoConfig) method() string { + return "setChatPhoto" +}
M helpers.gohelpers.go

@@ -653,3 +653,34 @@ StartParameter: startParameter,

Currency: currency, Prices: prices} } + +// NewSetChatPhotoUpload creates a new chat photo uploader. +// +// chatID is where to send it, file is a string path to the file, +// FileReader, or FileBytes. +// +// Note that you must send animated GIFs as a document. +func NewSetChatPhotoUpload(chatID int64, file interface{}) SetChatPhotoConfig { + return SetChatPhotoConfig{ + BaseFile: BaseFile{ + BaseChat: BaseChat{ChatID: chatID}, + File: file, + UseExisting: false, + }, + } +} + +// NewSetChatPhotoShare shares an existing photo. +// You may use this to reshare an existing photo without reuploading it. +// +// chatID is where to send it, fileID is the ID of the file +// already uploaded. +func NewSetChatPhotoShare(chatID int64, fileID string) SetChatPhotoConfig { + return SetChatPhotoConfig{ + BaseFile: BaseFile{ + BaseChat: BaseChat{ChatID: chatID}, + FileID: fileID, + UseExisting: true, + }, + } +}