Skip to content

Commit

Permalink
Merge pull request #21 from nikon72ru/formatting
Browse files Browse the repository at this point in the history
Supporting MarkdownV2 and HTML parse modes
  • Loading branch information
DmitryDorofeev authored Jul 30, 2021
2 parents a124e4e + 34a938f commit 4fca30e
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 22 deletions.
12 changes: 12 additions & 0 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,10 @@ func (c *Client) SendTextMessage(message *Message) error {
params.Set("inlineKeyboardMarkup", string(data))
}

if message.ParseMode != "" {
params.Set("parseMode", string(message.ParseMode))
}

response, err := c.Do("/messages/sendText", params, nil)
if err != nil {
return fmt.Errorf("error while sending text: %s", err)
Expand Down Expand Up @@ -392,6 +396,10 @@ func (c *Client) EditMessage(message *Message) error {
params.Set("inlineKeyboardMarkup", string(data))
}

if message.ParseMode != "" {
params.Set("parseMode", string(message.ParseMode))
}

response, err := c.Do("/messages/editText", params, nil)
if err != nil {
return fmt.Errorf("error while editing text: %s", err)
Expand Down Expand Up @@ -442,6 +450,10 @@ func (c *Client) SendFileMessage(message *Message) error {
params.Set("inlineKeyboardMarkup", string(data))
}

if message.ParseMode != "" {
params.Set("parseMode", string(message.ParseMode))
}

response, err := c.Do("/messages/sendFile", params, nil)
if err != nil {
return fmt.Errorf("error while making request: %s", err)
Expand Down
16 changes: 16 additions & 0 deletions message.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ type Message struct {

// The markup for the inline keyboard
InlineKeyboard *Keyboard `json:"inlineKeyboardMarkup"`

// The parse mode (HTML/MarkdownV2)
ParseMode ParseMode `json:"parseMode"`
}

func (m *Message) AttachNewFile(file *os.File) {
Expand All @@ -76,6 +79,19 @@ func (m *Message) AttachExistingVoice(fileID string) {
m.ContentType = Voice
}

// ParseMode represent a type of text formatting
type ParseMode string

const (
ParseModeHTML ParseMode = "HTML"
ParseModeMarkdownV2 ParseMode = "MarkdownV2"
)

// AppendParseMode append a type of text formatting for current message
func (m *Message) AppendParseMode(mode ParseMode) {
m.ParseMode = mode
}

// AttachInlineKeyboard adds a keyboard to the message.
// Note - at least one row should be in the keyboard
// and there should be no empty rows
Expand Down
7 changes: 7 additions & 0 deletions message_easyjson.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

44 changes: 22 additions & 22 deletions types_easyjson.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 4fca30e

Please sign in to comment.