forked from PaulSonOfLars/gotgbot
/
updating_messages.go
100 lines (80 loc) · 3.4 KB
/
updating_messages.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package ext
import (
"encoding/json"
"net/url"
"strconv"
"github.com/pkg/errors"
"github.com/PaulSonOfLars/gotgbot/parsemode"
)
func (b Bot) EditMessageText(chatId int, messageId int, text string) (*Message, error) {
return b.EditMessageTextMarkup(chatId, messageId, text, "", nil)
}
func (b Bot) EditMessageHTML(chatId int, messageId int, text string) (*Message, error) {
return b.EditMessageTextMarkup(chatId, messageId, text, parsemode.Html, nil)
}
func (b Bot) EditMessageMarkdown(chatId int, messageId int, text string) (*Message, error) {
return b.EditMessageTextMarkup(chatId, messageId, text, parsemode.Markdown, nil)
}
func (b Bot) EditMessage(chatId int, messageId int, text string, parseMode string) (*Message, error) {
return b.EditMessageTextMarkup(chatId, messageId, text, parseMode, nil)
}
func (b Bot) EditMessageTextMarkup(chatId int, messageId int, text string, parseMode string, markup ReplyMarkup) (*Message, error) {
msg := b.NewSendableEditMessageText(chatId, messageId, text)
msg.ParseMode = parseMode
msg.ReplyMarkup = markup
return msg.Send()
}
func (b Bot) EditMessageTextInline(inlineMessageId string, text string) (*Message, error) {
return b.EditMessageInline(inlineMessageId, text, "")
}
func (b Bot) EditMessageHTMLInline(inlineMessageId string, text string) (*Message, error) {
return b.EditMessageInline(inlineMessageId, text, parsemode.Html)
}
func (b Bot) EditMessageMarkdownInline(inlineMessageId string, text string) (*Message, error) {
return b.EditMessageInline(inlineMessageId, text, parsemode.Markdown)
}
func (b Bot) EditMessageInline(inlineMessageId string, text string, parseMode string) (*Message, error) {
msg := b.NewSendableEditMessageText(0, 0, text)
msg.InlineMessageId = inlineMessageId
msg.ParseMode = parseMode
return msg.Send()
}
func (b Bot) EditMessageCaption(chatId int, messageId int, caption string) (*Message, error) {
return b.EditMessageCaptionMarkup(chatId, messageId, caption, nil)
}
func (b Bot) EditMessageCaptionMarkup(chatId int, messageId int, caption string, markup ReplyMarkup) (*Message, error) {
msg := b.NewSendableEditMessageCaption(chatId, messageId, caption)
msg.ReplyMarkup = markup
return msg.Send()
}
func (b Bot) EditMessageCaptionInline(inlineMessageId string, caption string) (*Message, error) {
msg := b.NewSendableEditMessageCaption(0, 0, caption)
msg.InlineMessageId = inlineMessageId
return msg.Send()
}
func (b Bot) EditMessageReplyMarkup(chatId int, messageId int, replyMarkup InlineKeyboardMarkup) (*Message, error) {
msg := b.NewSendableEditMessageReplyMarkup(chatId, messageId, &replyMarkup)
return msg.Send()
}
func (b Bot) EditMessageReplyMarkupInline(inlineMessageId string, replyMarkup InlineKeyboardMarkup) (*Message, error) {
msg := b.NewSendableEditMessageReplyMarkup(0, 0, &replyMarkup)
msg.InlineMessageId = inlineMessageId
return msg.Send()
}
// TODO: ensure not a private chat! cant delete in private chats.
func (b Bot) DeleteMessage(chatId int, messageId int) (bool, error) {
v := url.Values{}
v.Add("chat_id", strconv.Itoa(chatId))
v.Add("message_id", strconv.Itoa(messageId))
return b.boolSender("deleteMessage", v)
}
func (b Bot) boolSender(meth string, v url.Values) (bb bool, err error) {
r, err := Get(b, meth, v)
if err != nil {
return false, errors.Wrapf(err, "unable to complete request for %s", meth)
}
if !r.Ok {
return false, errors.New(r.Description)
}
return bb, json.Unmarshal(r.Result, &bb)
}