all repos — telegram-bot-api @ fbc829b08f5e16fbde770e381cf6f8f6d8f14655

Golang bindings for the Telegram Bot API

Merge pull request #2 from OvyFlash/bot-api-6.1

Implement Bot API 6.1 changes
OvyFlash 46941696+OvyFlash@users.noreply.github.com
Sun, 20 Nov 2022 22:01:02 +0200
commit

fbc829b08f5e16fbde770e381cf6f8f6d8f14655

parent

4126fa611266940425a9dfd37e0c92ba47881718

3 files changed, 83 insertions(+), 6 deletions(-)

jump to
M .gitignore.gitignore

@@ -2,3 +2,4 @@ .idea/

coverage.out tmp/ book/ +.vscode/
M configs.goconfigs.go

@@ -1164,6 +1164,7 @@ IPAddress string

MaxConnections int AllowedUpdates []string DropPendingUpdates bool + SecretToken string } func (config WebhookConfig) method() string {

@@ -1181,6 +1182,7 @@ params.AddNonEmpty("ip_address", config.IPAddress)

params.AddNonZero("max_connections", config.MaxConnections) err := params.AddInterface("allowed_updates", config.AllowedUpdates) params.AddBool("drop_pending_updates", config.DropPendingUpdates) + params.AddNonEmpty("secret_token", config.SecretToken) return params, err }

@@ -1782,6 +1784,64 @@ }

func (config InvoiceConfig) method() string { return "sendInvoice" +} + +// InvoiceLinkConfig contains information for createInvoiceLink method +type InvoiceLinkConfig struct { + Title string //Required + Description string //Required + Payload string //Required + ProviderToken string //Required + Currency string //Required + Prices []LabeledPrice //Required + MaxTipAmount int + SuggestedTipAmounts []int + ProviderData string + PhotoURL string + PhotoSize int + PhotoWidth int + PhotoHeight int + NeedName bool + NeedPhoneNumber bool + NeedEmail bool + NeedShippingAddress bool + SendPhoneNumberToProvider bool + SendEmailToProvider bool + IsFlexible bool +} + +func (config InvoiceLinkConfig) params() (Params, error) { + params := make(Params) + + params["title"] = config.Title + params["description"] = config.Description + params["payload"] = config.Payload + params["provider_token"] = config.ProviderToken + params["currency"] = config.Currency + if err := params.AddInterface("prices", config.Prices); err != nil { + return params, err + } + + params.AddNonZero("max_tip_amount", config.MaxTipAmount) + err := params.AddInterface("suggested_tip_amounts", config.SuggestedTipAmounts) + params.AddNonEmpty("provider_data", config.ProviderData) + params.AddNonEmpty("photo_url", config.PhotoURL) + params.AddNonZero("photo_size", config.PhotoSize) + params.AddNonZero("photo_width", config.PhotoWidth) + params.AddNonZero("photo_height", config.PhotoHeight) + params.AddBool("need_name", config.NeedName) + params.AddBool("need_phone_number", config.NeedPhoneNumber) + params.AddBool("need_email", config.NeedEmail) + params.AddBool("need_shipping_address", config.NeedShippingAddress) + params.AddBool("send_phone_number_to_provider", config.SendPhoneNumberToProvider) + params.AddBool("send_email_to_provider", config.SendEmailToProvider) + params.AddBool("is_flexible", config.IsFlexible) + + return params, err +} + +func (config InvoiceLinkConfig) method() string { + return "createInvoiceLink" } // ShippingConfig contains information for answerShippingQuery request.
M types.gotypes.go

@@ -187,6 +187,10 @@ // IsPremium true, if user has Telegram Premium

// // optional IsPremium bool `json:"is_premium,omitempty"` + // AddedToAttachmentMenu true, if this user added the bot to the attachment menu + // + // optional + AddedToAttachmentMenu bool `json:"added_to_attachment_menu,omitempty"` // FirstName user's or bot's first name FirstName string `json:"first_name"` // LastName user's or bot's last name

@@ -274,6 +278,18 @@ // with the user. Returned only in getChat.

// // optional HasPrivateForwards bool `json:"has_private_forwards,omitempty"` + // JoinToSendMessages is true, if users need to join the supergroup + // before they can send messages. + // Returned only in getChat + // + // optional + JoinToSendMessages bool `json:"join_to_send_messages,omitempty"` + // JoinByRequest is true, if all users directly joining the supergroup + // need to be approved by supergroup administrators. + // Returned only in getChat. + // + // optional + JoinByRequest bool `json:"join_by_request,omitempty"` // Description for groups, supergroups and channel chats // // optional

@@ -863,7 +879,7 @@ MimeType string `json:"mime_type,omitempty"`

// FileSize file size // // optional - FileSize int `json:"file_size,omitempty"` + FileSize int64 `json:"file_size,omitempty"` } // Audio represents an audio file to be treated as music by the Telegram clients.

@@ -896,7 +912,7 @@ MimeType string `json:"mime_type,omitempty"`

// FileSize file size // // optional - FileSize int `json:"file_size,omitempty"` + FileSize int64 `json:"file_size,omitempty"` // Thumbnail is the album cover to which the music file belongs // // optional

@@ -927,7 +943,7 @@ MimeType string `json:"mime_type,omitempty"`

// FileSize file size // // optional - FileSize int `json:"file_size,omitempty"` + FileSize int64 `json:"file_size,omitempty"` } // Video represents a video file.

@@ -960,7 +976,7 @@ MimeType string `json:"mime_type,omitempty"`

// FileSize file size // // optional - FileSize int `json:"file_size,omitempty"` + FileSize int64 `json:"file_size,omitempty"` } // VideoNote object represents a video message.

@@ -1002,7 +1018,7 @@ MimeType string `json:"mime_type,omitempty"`

// FileSize file size // // optional - FileSize int `json:"file_size,omitempty"` + FileSize int64 `json:"file_size,omitempty"` } // Contact represents a phone contact.

@@ -1234,7 +1250,7 @@ FileUniqueID string `json:"file_unique_id"`

// FileSize file size, if known // // optional - FileSize int `json:"file_size,omitempty"` + FileSize int64 `json:"file_size,omitempty"` // FilePath file path // // optional