Fix editMedia and add editCaption
This commit is contained in:
parent
dfbd036217
commit
d7698a3c50
2 changed files with 45 additions and 4 deletions
12
command.go
12
command.go
|
@ -51,6 +51,9 @@ const (
|
||||||
// CmdAnswerCallback requests the broker to reply to a incoming callback query
|
// CmdAnswerCallback requests the broker to reply to a incoming callback query
|
||||||
CmdAnswerCallback ClientCommandType = "answerCallback"
|
CmdAnswerCallback ClientCommandType = "answerCallback"
|
||||||
|
|
||||||
|
// CmdEditCaption requests to broker to replace the caption of a media (photo, doc, etc) message
|
||||||
|
CmdEditCaption ClientCommandType = "editCaption"
|
||||||
|
|
||||||
// CmdEditMedia requests to broker to replace the media contents of a message
|
// CmdEditMedia requests to broker to replace the media contents of a message
|
||||||
CmdEditMedia ClientCommandType = "editMedia"
|
CmdEditMedia ClientCommandType = "editMedia"
|
||||||
)
|
)
|
||||||
|
@ -102,6 +105,15 @@ type ClientAlbumData struct {
|
||||||
ReplyID *int64 `json:",omitempty"`
|
ReplyID *int64 `json:",omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ClientEditCaptionData is the required data for a CmdEditCaption request
|
||||||
|
type ClientEditCaptionData struct {
|
||||||
|
ChatID int64
|
||||||
|
MessageID int64
|
||||||
|
InlineID string
|
||||||
|
Caption string
|
||||||
|
ReplyMarkup interface{} `json:",omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// ClientEditMediaData is the required data for a CmdEditMedia request
|
// ClientEditMediaData is the required data for a CmdEditMedia request
|
||||||
type ClientEditMediaData struct {
|
type ClientEditMediaData struct {
|
||||||
ChatID int64
|
ChatID int64
|
||||||
|
|
37
telegram.go
37
telegram.go
|
@ -213,11 +213,38 @@ func (t Telegram) AnswerCallback(data ClientCallbackQueryData) {
|
||||||
checkerr("AnswerCallback/http.PostForm", err)
|
checkerr("AnswerCallback/http.PostForm", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EditCaption modifies the caption of a photo/document/etc message
|
||||||
|
func (t Telegram) EditCaption(data ClientEditCaptionData) error {
|
||||||
|
postdata := url.Values{
|
||||||
|
"caption": {data.Caption},
|
||||||
|
"parse_mode": {"HTML"},
|
||||||
|
}
|
||||||
|
if data.InlineID != "" {
|
||||||
|
postdata.Set("inline_message_id", data.InlineID)
|
||||||
|
} else {
|
||||||
|
postdata.Set("chat_id", strconv.FormatInt(data.ChatID, 10))
|
||||||
|
postdata.Set("message_id", strconv.FormatInt(data.MessageID, 10))
|
||||||
|
}
|
||||||
|
if data.ReplyMarkup != nil {
|
||||||
|
replyjson, err := json.Marshal(data.ReplyMarkup)
|
||||||
|
if checkerr("EditCaption/json.Marshal", err) {
|
||||||
|
return ErrMalformed
|
||||||
|
}
|
||||||
|
postdata["reply_markup"] = []string{string(replyjson)}
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := http.PostForm(t.apiURL("editMessageCaption"), postdata)
|
||||||
|
checkerr("EditCaption/http.PostForm", err)
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// EditMedia modifies the media content (like photo) of a message
|
// EditMedia modifies the media content (like photo) of a message
|
||||||
func (t Telegram) EditMedia(data ClientEditMediaData) {
|
func (t Telegram) EditMedia(data ClientEditMediaData) error {
|
||||||
jsonmedia, err := json.Marshal(data.Media)
|
jsonmedia, err := json.Marshal(data.Media)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
checkerr("SendAlbum/json.Marshal", err)
|
checkerr("EditMedia/json.Marshal", err)
|
||||||
|
return ErrMalformed
|
||||||
}
|
}
|
||||||
postdata := url.Values{
|
postdata := url.Values{
|
||||||
"media": {string(jsonmedia)},
|
"media": {string(jsonmedia)},
|
||||||
|
@ -230,14 +257,16 @@ func (t Telegram) EditMedia(data ClientEditMediaData) {
|
||||||
}
|
}
|
||||||
if data.ReplyMarkup != nil {
|
if data.ReplyMarkup != nil {
|
||||||
replyjson, err := json.Marshal(data.ReplyMarkup)
|
replyjson, err := json.Marshal(data.ReplyMarkup)
|
||||||
if !checkerr("SendTextMessage/json.Marshal", err) {
|
if checkerr("EditMedia/json.Marshal", err) {
|
||||||
return
|
return ErrMalformed
|
||||||
}
|
}
|
||||||
postdata["reply_markup"] = []string{string(replyjson)}
|
postdata["reply_markup"] = []string{string(replyjson)}
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = http.PostForm(t.apiURL("editMessageMedia"), postdata)
|
_, err = http.PostForm(t.apiURL("editMessageMedia"), postdata)
|
||||||
checkerr("EditMedia/http.PostForm", err)
|
checkerr("EditMedia/http.PostForm", err)
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// AnswerInlineQuery replies to an inline query
|
// AnswerInlineQuery replies to an inline query
|
||||||
|
|
Loading…
Reference in a new issue