From 581c5330205f8d64e3d2766cf168a81c98796a64 Mon Sep 17 00:00:00 2001 From: Andrew Privalov Date: Fri, 13 Sep 2024 15:43:05 +0300 Subject: [PATCH] 7.10 (#114) * 7.10 * changelog --- CHANGELOG.md | 11 +++++++++++ README.md | 2 +- methods_params.go | 1 + models/boost.go | 7 +++++-- models/chat.go | 25 +++++++++++++++++-------- models/giveaway.go | 7 ++++++- models/paid.go | 6 ++++++ models/star.go | 9 +++++---- models/update.go | 1 + 9 files changed, 53 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed00fc4..34978c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## v1.8.0 (2024-09-13) + +- support API v7.10 +- change type for field Type in models.Chat and models.ChatFullInfo from `string` to `models.ChatType` +- add consts for ChatType + - models.ChatTypePrivate + - models.ChatTypeGroup + - models.ChatTypeSupergroup + - models.ChatTypeChannel + + ## v1.7.3 (2024-09-10) - Fix findHandler behavior diff --git a/README.md b/README.md index 12db0c6..a8a5a8f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ > [Telegram Group](https://t.me/gotelegrambotui) -> Supports Bot API version: [7.9](https://core.telegram.org/bots/api#august-14-2024) from August 14, 2024 +> Supports Bot API version: [7.10](https://core.telegram.org/bots/api#september-6-2024) from September 6, 2024 It's a Go zero-dependencies telegram bot framework diff --git a/methods_params.go b/methods_params.go index 4e15aa8..93b8ae2 100644 --- a/methods_params.go +++ b/methods_params.go @@ -221,6 +221,7 @@ type SendPaidMediaParams struct { ChatID any `json:"chat_id"` StarCount int `json:"star_count"` Media []models.InputPaidMedia `json:"media"` + Payload string `json:"payload,omitempty"` Caption string `json:"caption,omitempty"` ParseMode models.ParseMode `json:"parse_mode,omitempty"` CaptionEntities []models.MessageEntity `json:"caption_entities,omitempty"` diff --git a/models/boost.go b/models/boost.go index bc608ba..ac49399 100644 --- a/models/boost.go +++ b/models/boost.go @@ -112,6 +112,9 @@ type ChatBoostSourceGiftCode struct { // ChatBoostSourceGiveaway https://core.telegram.org/bots/api#chatboostsourcegiveaway type ChatBoostSourceGiveaway struct { - Source ChatBoostSourceType `json:"source"` // always “giveaway” - User User `json:"user"` + Source ChatBoostSourceType `json:"source"` // always “giveaway” + GiveawayMessageID int `json:"giveaway_message_id"` + User User `json:"user"` + PrizeStarCount int `json:"prize_star_count,omitempty"` + IsUnclaimed bool `json:"is_unclaimed,omitempty"` } diff --git a/models/chat.go b/models/chat.go index 4bb6208..bf7c96d 100644 --- a/models/chat.go +++ b/models/chat.go @@ -80,21 +80,30 @@ type Birthdate struct { Year int `json:"year,omitempty"` } +type ChatType string + +const ( + ChatTypePrivate ChatType = "private" + ChatTypeGroup ChatType = "group" + ChatTypeSupergroup ChatType = "supergroup" + ChatTypeChannel ChatType = "channel" +) + // Chat https://core.telegram.org/bots/api#chat type Chat struct { - ID int64 `json:"id"` - Type string `json:"type"` - Title string `json:"title,omitempty"` - Username string `json:"username,omitempty"` - FirstName string `json:"first_name,omitempty"` - LastName string `json:"last_name,omitempty"` - IsForum bool `json:"is_forum,omitempty"` + ID int64 `json:"id"` + Type ChatType `json:"type"` + Title string `json:"title,omitempty"` + Username string `json:"username,omitempty"` + FirstName string `json:"first_name,omitempty"` + LastName string `json:"last_name,omitempty"` + IsForum bool `json:"is_forum,omitempty"` } // ChatFullInfo https://core.telegram.org/bots/api#chatfullinfo type ChatFullInfo struct { ID int64 `json:"id"` - Type string `json:"type"` + Type ChatType `json:"type"` Title string `json:"title,omitempty"` Username string `json:"username,omitempty"` FirstName string `json:"first_name,omitempty"` diff --git a/models/giveaway.go b/models/giveaway.go index 1a09056..37635ad 100644 --- a/models/giveaway.go +++ b/models/giveaway.go @@ -9,11 +9,14 @@ type Giveaway struct { HasPublicWinners bool `json:"has_public_winners,omitempty"` PrizeDescription string `json:"prize_description,omitempty"` CountryCodes []string `json:"country_codes,omitempty"` + PrizeStarCount int `json:"prize_star_count,omitempty"` PremiumSubscriptionMonthCount int `json:"premium_subscription_month_count,omitempty"` } // GiveawayCreated https://core.telegram.org/bots/api#giveawaycreated -type GiveawayCreated struct{} +type GiveawayCreated struct { + PrizeStarCount int `json:"prize_star_count,omitempty"` +} // GiveawayWinners https://core.telegram.org/bots/api#giveawaywinners type GiveawayWinners struct { @@ -25,6 +28,7 @@ type GiveawayWinners struct { AdditionalChatCount int `json:"additional_chat_count,omitempty"` PremiumSubscriptionMonthCount int `json:"premium_subscription_month_count,omitempty"` UnclaimedPrizeCount int `json:"unclaimed_prize_count,omitempty"` + PrizeStarCount int `json:"prize_star_count,omitempty"` OnlyNewMembers bool `json:"only_new_members,omitempty"` WasRefunded bool `json:"was_refunded,omitempty"` PrizeDescription string `json:"prize_description,omitempty"` @@ -35,4 +39,5 @@ type GiveawayCompleted struct { WinnerCount int `json:"winner_count"` UnclaimedPrizeCount int `json:"unclaimed_prize_count,omitempty"` GiveawayMessage *Message `json:"giveaway_message,omitempty"` + IsStarGiveaway bool `json:"is_star_giveaway,omitempty"` } diff --git a/models/paid.go b/models/paid.go index e0d5c4c..ec35d2c 100644 --- a/models/paid.go +++ b/models/paid.go @@ -148,3 +148,9 @@ type PaidMediaInfo struct { StarCount int `json:"star_count"` PaidMedia []PaidMedia `json:"paid_media"` } + +// PaidMediaPurchased https://core.telegram.org/bots/api#paidmediapurchased +type PaidMediaPurchased struct { + From User `json:"from"` + PaidMediaPayload string `json:"paid_media_payload"` +} diff --git a/models/star.go b/models/star.go index 76b9406..78fb380 100644 --- a/models/star.go +++ b/models/star.go @@ -57,10 +57,11 @@ type TransactionPartnerFragment struct { // TransactionPartnerUser https://core.telegram.org/bots/api#transactionpartneruser type TransactionPartnerUser struct { - Type TransactionPartnerType `json:"type"` - User User `json:"user"` - InvoicePayload string `json:"invoice_payload,omitempty"` - PaidMedia []*PaidMedia `json:"paid_media,omitempty"` + Type TransactionPartnerType `json:"type"` + User User `json:"user"` + InvoicePayload string `json:"invoice_payload,omitempty"` + PaidMedia []*PaidMedia `json:"paid_media,omitempty"` + PaidMediaPayload string `json:"paid_media_payload,omitempty"` } // TransactionPartnerOther https://core.telegram.org/bots/api#transactionpartnerother diff --git a/models/update.go b/models/update.go index 18ff7ef..da82960 100644 --- a/models/update.go +++ b/models/update.go @@ -18,6 +18,7 @@ type Update struct { CallbackQuery *CallbackQuery `json:"callback_query,omitempty"` ShippingQuery *ShippingQuery `json:"shipping_query,omitempty"` PreCheckoutQuery *PreCheckoutQuery `json:"pre_checkout_query,omitempty"` + PurchasedPaidMedia *PaidMediaPurchased `json:"purchased_paid_media,omitempty"` Poll *Poll `json:"poll,omitempty"` PollAnswer *PollAnswer `json:"poll_answer,omitempty"` MyChatMember *ChatMemberUpdated `json:"my_chat_member,omitempty"`