pull/216/merge
Ali Error 6 years ago committed by GitHub
commit edf4b45775
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      bot.go
  2. 53
      configs.go
  3. 42
      helpers.go

@ -202,7 +202,6 @@ func (bot *BotAPI) UploadFile(endpoint string, params map[string]string, fieldna
}
ms.SetupRequest(req)
res, err := bot.Client.Do(req)
if err != nil {
return APIResponse{}, err
@ -317,7 +316,6 @@ func (bot *BotAPI) uploadAndSend(method string, config Fileable) (Message, error
}
file := config.getFile()
resp, err := bot.UploadFile(method, params, config.name(), file)
if err != nil {
return Message{}, err

@ -934,6 +934,59 @@ func (config EditMessageReplyMarkupConfig) method() string {
return "editMessageReplyMarkup"
}
// EditMessageMediaConfig allows you to modify the media
// of a message.
type EditMessageMediaConfig struct {
BaseFile
BaseEdit
Media interface{} `json:"media"`
ParseMode string
DisableWebPagePreview bool
}
func (config EditMessageMediaConfig) values() (url.Values, error) {
v, err := config.BaseChat.values()
if err != nil {
return v, err
}
v, err = config.BaseEdit.values()
if err != nil {
return v, err
}
if !config.UseExisting {
fileName := ""
switch mType := config.Media.(type) {
case InputMediaPhoto:
fileName = mType.Media
mType.Media = "attach://" + config.name()
config.Media = mType
case InputMediaVideo:
fileName = mType.Media
mType.Media = "attach://" + config.name()
config.Media = mType
}
config.File = fileName
}
bytes, err := json.Marshal(config.Media)
if err != nil {
return v, err
}
v.Add("media", string(bytes))
v.Add("parse_mode", config.ParseMode)
v.Add("disable_web_page_preview", strconv.FormatBool(config.DisableWebPagePreview))
return v, nil
}
func (config EditMessageMediaConfig) name() string {
return "fileName"
}
func (config EditMessageMediaConfig) method() string {
return "editMessageMedia"
}
// UserProfilePhotosConfig contains information about a
// GetUserProfilePhotos request.
type UserProfilePhotosConfig struct {

@ -638,6 +638,48 @@ func NewEditMessageReplyMarkup(chatID int64, messageID int, replyMarkup InlineKe
}
}
// NewEditMessageReplyMedia allows you to edit audio, document, photo, or video messages
// keyboard markup.
func NewEditMessageMedia(chatID int64, messageID int, media interface{}) EditMessageMediaConfig {
fileName := ""
switch media.(type) {
case InputMediaPhoto:
photo := media.(InputMediaPhoto)
fileName = photo.Media
case InputMediaVideo:
video := media.(InputMediaVideo)
fileName = video.Media
}
return EditMessageMediaConfig{
BaseEdit: BaseEdit{
ChatID: chatID,
MessageID: messageID,
},
Media: media,
BaseFile: BaseFile{
FileID: fileName,
UseExisting: true,
},
}
}
// NewEditMessageReplyMedia allows you to edit audio, document, photo, or video messages
// keyboard markup.
func NewEditMessageMediaUpload(chatID int64, messageID int, media interface{}) EditMessageMediaConfig {
return EditMessageMediaConfig{
BaseEdit: BaseEdit{
ChatID: chatID,
MessageID: messageID,
},
Media: media,
BaseFile: BaseFile{
BaseChat: BaseChat{ChatID: chatID},
File: media,
UseExisting: false,
},
}
}
// NewHideKeyboard hides the keyboard, with the option for being selective
// or hiding for everyone.
func NewHideKeyboard(selective bool) ReplyKeyboardHide {