all repos — telegram-bot-api @ 7f37376fd009c882bfa6145859de839327ec0cfa

Golang bindings for the Telegram Bot API

Merge pull request #49 from llorephie/master

Add support for Markdown/HTML in NewInlineQueryResultArticle
Syfaro syfaro@foxpaw.in
Thu, 02 Jun 2016 15:55:32 -0500
commit

7f37376fd009c882bfa6145859de839327ec0cfa

parent

217764ba453f319b00d05506e56d26ef0a9fc231

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

jump to
M bot_test.gobot_test.go

@@ -516,3 +516,71 @@ log.Println(err)

} } } + +func ExampleAnswerInlineQueryMarkdown() { + bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken") // create new bot + if err != nil { + log.Panic(err) + } + + log.Printf("Authorized on account %s", bot.Self.UserName) + + u := tgbotapi.NewUpdate(0) + u.Timeout = 60 + + updates, err := bot.GetUpdatesChan(u) + + for update := range updates { + if update.InlineQuery == nil { // if no inline query, ignore it + continue + } + + article := tgbotapi.NewInlineQueryResultArticleMarkdown(update.InlineQuery.ID, "Echo", update.InlineQuery.Query) + article.Description = update.InlineQuery.Query + + inlineConf := tgbotapi.InlineConfig{ + InlineQueryID: update.InlineQuery.ID, + IsPersonal: true, + CacheTime: 0, + Results: []interface{}{article}, + } + + if _, err := bot.AnswerInlineQuery(inlineConf); err != nil { + log.Println(err) + } + } +} + +func ExampleAnswerInlineQueryHTML() { + bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken") // create new bot + if err != nil { + log.Panic(err) + } + + log.Printf("Authorized on account %s", bot.Self.UserName) + + u := tgbotapi.NewUpdate(0) + u.Timeout = 60 + + updates, err := bot.GetUpdatesChan(u) + + for update := range updates { + if update.InlineQuery == nil { // if no inline query, ignore it + continue + } + + article := tgbotapi.NewInlineQueryResultArticleHTML(update.InlineQuery.ID, "Echo", update.InlineQuery.Query) + article.Description = update.InlineQuery.Query + + inlineConf := tgbotapi.InlineConfig{ + InlineQueryID: update.InlineQuery.ID, + IsPersonal: true, + CacheTime: 0, + Results: []interface{}{article}, + } + + if _, err := bot.AnswerInlineQuery(inlineConf); err != nil { + log.Println(err) + } + } +}
M helpers.gohelpers.go

@@ -328,6 +328,32 @@ },

} } +// NewInlineQueryResultArticleMarkdown creates a new inline query article with Markdown parsing. +func NewInlineQueryResultArticleMarkdown(id, title, messageText string) InlineQueryResultArticle { + return InlineQueryResultArticle{ + Type: "article", + ID: id, + Title: title, + InputMessageContent: InputTextMessageContent{ + Text: messageText, + ParseMode: "Markdown", + }, + } +} + +// NewInlineQueryResultArticleHTML creates a new inline query article with HTML parsing. +func NewInlineQueryResultArticleHTML(id, title, messageText string) InlineQueryResultArticle { + return InlineQueryResultArticle{ + Type: "article", + ID: id, + Title: title, + InputMessageContent: InputTextMessageContent{ + Text: messageText, + ParseMode: "HTML", + }, + } +} + // NewInlineQueryResultGIF creates a new inline query GIF. func NewInlineQueryResultGIF(id, url string) InlineQueryResultGIF { return InlineQueryResultGIF{
M helpers_test.gohelpers_test.go

@@ -16,6 +16,30 @@ t.Fail()

} } +func TestNewInlineQueryResultArticleMarkdown(t *testing.T) { + result := tgbotapi.NewInlineQueryResultArticleMarkdown("id", "title", "*message*") + + if result.Type != "article" || + result.ID != "id" || + result.Title != "title" || + result.InputMessageContent.(tgbotapi.InputTextMessageContent).Text != "*message*" || + result.InputMessageContent.(tgbotapi.InputTextMessageContent).ParseMode != "Markdown" { + t.Fail() + } +} + +func TestNewInlineQueryResultArticleHTML(t *testing.T) { + result := tgbotapi.NewInlineQueryResultArticleHTML("id", "title", "<b>message</b>") + + if result.Type != "article" || + result.ID != "id" || + result.Title != "title" || + result.InputMessageContent.(tgbotapi.InputTextMessageContent).Text != "<b>message</b>" || + result.InputMessageContent.(tgbotapi.InputTextMessageContent).ParseMode != "HTML" { + t.Fail() + } +} + func TestNewInlineQueryResultGIF(t *testing.T) { result := tgbotapi.NewInlineQueryResultGIF("id", "google.com")