Merge branch 'master' of github.com:youaresofunny/got

pull/281/head
Sergey Parshukov 6 years ago
commit b2775f9bda
No known key found for this signature in database
GPG Key ID: 9D0FB8D5E702923A
  1. 3
      configs.go
  2. 9
      helpers.go
  3. 92
      types.go

@ -178,6 +178,9 @@ func (edit BaseEdit) values() (url.Values, error) {
} }
if edit.ReplyMarkup != nil { if edit.ReplyMarkup != nil {
if len(edit.ReplyMarkup.InlineKeyboard) == 0 {
edit.ReplyMarkup.InlineKeyboard = make([][]InlineKeyboardButton, 0)
}
data, err := json.Marshal(edit.ReplyMarkup) data, err := json.Marshal(edit.ReplyMarkup)
if err != nil { if err != nil {
return v, err return v, err

@ -722,6 +722,15 @@ func NewInlineKeyboardButtonURL(text, url string) InlineKeyboardButton {
} }
} }
// NewInlineKeyboardButtonLoginURL creates an inline keyboard button with text
// which allows user to login into provided LoginURL.
func NewInlineKeyboardButtonLoginURL(text string, loginURL *LoginURL) InlineKeyboardButton {
return InlineKeyboardButton{
Text: text,
LoginURL: loginURL,
}
}
// NewInlineKeyboardButtonSwitch creates an inline keyboard button with // NewInlineKeyboardButtonSwitch creates an inline keyboard button with
// text which allows the user to switch to a chat or return to a chat. // text which allows the user to switch to a chat or return to a chat.
func NewInlineKeyboardButtonSwitch(text, sw string) InlineKeyboardButton { func NewInlineKeyboardButtonSwitch(text, sw string) InlineKeyboardButton {

@ -131,46 +131,49 @@ func (c Chat) ChatConfig() ChatConfig {
// Message is returned by almost every request, and contains data about // Message is returned by almost every request, and contains data about
// almost anything. // almost anything.
type Message struct { type Message struct {
MessageID int `json:"message_id"` MessageID int `json:"message_id"`
From *User `json:"from"` // optional From *User `json:"from"` // optional
Date int `json:"date"` Date int `json:"date"`
Chat *Chat `json:"chat"` Chat *Chat `json:"chat"`
ForwardFrom *User `json:"forward_from"` // optional ForwardFrom *User `json:"forward_from"` // optional
ForwardFromChat *Chat `json:"forward_from_chat"` // optional ForwardFromChat *Chat `json:"forward_from_chat"` // optional
ForwardFromMessageID int `json:"forward_from_message_id"` // optional ForwardFromMessageID int `json:"forward_from_message_id"` // optional
ForwardDate int `json:"forward_date"` // optional ForwardDate int `json:"forward_date"` // optional
ReplyToMessage *Message `json:"reply_to_message"` // optional ReplyToMessage *Message `json:"reply_to_message"` // optional
EditDate int `json:"edit_date"` // optional EditDate int `json:"edit_date"` // optional
Text string `json:"text"` // optional Text string `json:"text"` // optional
Entities *[]MessageEntity `json:"entities"` // optional Entities *[]MessageEntity `json:"entities"` // optional
CaptionEntities *[]MessageEntity `json:"caption_entities"` // optional CaptionEntities *[]MessageEntity `json:"caption_entities"` // optional
Audio *Audio `json:"audio"` // optional Audio *Audio `json:"audio"` // optional
Document *Document `json:"document"` // optional Document *Document `json:"document"` // optional
Animation *ChatAnimation `json:"animation"` // optional Animation *ChatAnimation `json:"animation"` // optional
Game *Game `json:"game"` // optional Game *Game `json:"game"` // optional
Photo *[]PhotoSize `json:"photo"` // optional Photo *[]PhotoSize `json:"photo"` // optional
Sticker *Sticker `json:"sticker"` // optional Sticker *Sticker `json:"sticker"` // optional
Video *Video `json:"video"` // optional Video *Video `json:"video"` // optional
VideoNote *VideoNote `json:"video_note"` // optional VideoNote *VideoNote `json:"video_note"` // optional
Voice *Voice `json:"voice"` // optional Voice *Voice `json:"voice"` // optional
Caption string `json:"caption"` // optional Caption string `json:"caption"` // optional
Contact *Contact `json:"contact"` // optional Contact *Contact `json:"contact"` // optional
Location *Location `json:"location"` // optional Location *Location `json:"location"` // optional
Venue *Venue `json:"venue"` // optional Venue *Venue `json:"venue"` // optional
NewChatMembers *[]User `json:"new_chat_members"` // optional NewChatMembers *[]User `json:"new_chat_members"` // optional
LeftChatMember *User `json:"left_chat_member"` // optional LeftChatMember *User `json:"left_chat_member"` // optional
NewChatTitle string `json:"new_chat_title"` // optional NewChatTitle string `json:"new_chat_title"` // optional
NewChatPhoto *[]PhotoSize `json:"new_chat_photo"` // optional NewChatPhoto *[]PhotoSize `json:"new_chat_photo"` // optional
DeleteChatPhoto bool `json:"delete_chat_photo"` // optional DeleteChatPhoto bool `json:"delete_chat_photo"` // optional
GroupChatCreated bool `json:"group_chat_created"` // optional GroupChatCreated bool `json:"group_chat_created"` // optional
SuperGroupChatCreated bool `json:"supergroup_chat_created"` // optional SuperGroupChatCreated bool `json:"supergroup_chat_created"` // optional
ChannelChatCreated bool `json:"channel_chat_created"` // optional ChannelChatCreated bool `json:"channel_chat_created"` // optional
MigrateToChatID int64 `json:"migrate_to_chat_id"` // optional MigrateToChatID int64 `json:"migrate_to_chat_id"` // optional
MigrateFromChatID int64 `json:"migrate_from_chat_id"` // optional MigrateFromChatID int64 `json:"migrate_from_chat_id"` // optional
PinnedMessage *Message `json:"pinned_message"` // optional PinnedMessage *Message `json:"pinned_message"` // optional
Invoice *Invoice `json:"invoice"` // optional Invoice *Invoice `json:"invoice"` // optional
SuccessfulPayment *SuccessfulPayment `json:"successful_payment"` // optional SuccessfulPayment *SuccessfulPayment `json:"successful_payment"` // optional
PassportData *PassportData `json:"passport_data,omitempty"` // optional PassportData *PassportData `json:"passport_data,omitempty"` // optional
ConnectedWebsite *string `json:"connected_website,omitempty"` // optional
ReplyMarkup *InlineKeyboardMarkup `json:"reply_markup,omitempty"` // optional
AuthorSignature string `json:"author_signature,omitempty"` // optional
} }
// Time converts the message timestamp into a Time. // Time converts the message timestamp into a Time.
@ -473,6 +476,7 @@ type InlineKeyboardMarkup struct {
type InlineKeyboardButton struct { type InlineKeyboardButton struct {
Text string `json:"text"` Text string `json:"text"`
URL *string `json:"url,omitempty"` // optional URL *string `json:"url,omitempty"` // optional
LoginURL *LoginURL `json:"login_url,omitempty"` // optional
CallbackData *string `json:"callback_data,omitempty"` // optional CallbackData *string `json:"callback_data,omitempty"` // optional
SwitchInlineQuery *string `json:"switch_inline_query,omitempty"` // optional SwitchInlineQuery *string `json:"switch_inline_query,omitempty"` // optional
SwitchInlineQueryCurrentChat *string `json:"switch_inline_query_current_chat,omitempty"` // optional SwitchInlineQueryCurrentChat *string `json:"switch_inline_query_current_chat,omitempty"` // optional
@ -572,6 +576,14 @@ type WebhookInfo struct {
LastErrorMessage string `json:"last_error_message"` // optional LastErrorMessage string `json:"last_error_message"` // optional
} }
// LoginURL contains fields that allows user to login to webpage
type LoginURL struct {
URL string `json:"url"`
ForwardText *string `json:"forward_text,omitempty"`
BotUsername *string `json:"bot_username,omitempty"`
RequestWriteAcces *bool `json:"request_write_access,omitempty"`
}
// IsSet returns true if a webhook is currently set. // IsSet returns true if a webhook is currently set.
func (info WebhookInfo) IsSet() bool { func (info WebhookInfo) IsSet() bool {
return info.URL != "" return info.URL != ""