From 84d628f05dd08c4f8d1b0693dc07f67246f6a7e7 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 16 Oct 2023 11:31:11 +0300 Subject: [PATCH] Add td_api::messagePremiumGiveawayCreated. --- td/generate/scheme/td_api.tl | 5 ++++- td/telegram/DialogAction.cpp | 1 + td/telegram/MessageContent.cpp | 33 +++++++++++++++++++++++++++++- td/telegram/MessageContentType.cpp | 6 ++++++ td/telegram/MessageContentType.h | 3 ++- td/telegram/MessagesManager.cpp | 1 + 6 files changed, 46 insertions(+), 3 deletions(-) diff --git a/td/generate/scheme/td_api.tl b/td/generate/scheme/td_api.tl index 4bf5c5450..5bb4ca5f2 100644 --- a/td/generate/scheme/td_api.tl +++ b/td/generate/scheme/td_api.tl @@ -2811,7 +2811,10 @@ messageGiftedPremium gifter_user_id:int53 currency:string amount:int53 cryptocur //@code The gift code messagePremiumGiftCode creator_id:MessageSender is_from_giveaway:Bool month_count:int32 sticker:sticker code:string = MessageContent; -//@description A Telegram Premium giveaway was created +//@description A Telegram Premium giveaway was created for the chat +messagePremiumGiveawayCreated = MessageContent; + +//@description A Telegram Premium giveaway //@parameters Giveaway parameters //@user_count Number of users which will receive Telegram Premium subscription gift codes //@month_count Number of month the Telegram Premium subscription will be active after code activation diff --git a/td/telegram/DialogAction.cpp b/td/telegram/DialogAction.cpp index 5482e767e..7fca21698 100644 --- a/td/telegram/DialogAction.cpp +++ b/td/telegram/DialogAction.cpp @@ -415,6 +415,7 @@ bool DialogAction::is_canceled_by_message_of_type(MessageContentType message_con case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: return false; default: UNREACHABLE(); diff --git a/td/telegram/MessageContent.cpp b/td/telegram/MessageContent.cpp index 7ec37c40b..5544d4728 100644 --- a/td/telegram/MessageContent.cpp +++ b/td/telegram/MessageContent.cpp @@ -478,7 +478,7 @@ class MessageChatSetTtl final : public MessageContent { class MessageUnsupported final : public MessageContent { public: - static constexpr int32 CURRENT_VERSION = 22; + static constexpr int32 CURRENT_VERSION = 23; int32 version = CURRENT_VERSION; MessageUnsupported() = default; @@ -972,6 +972,15 @@ class MessageGiveaway final : public MessageContent { } }; +class MessageGiveawayLaunch final : public MessageContent { + public: + MessageGiveawayLaunch() = default; + + MessageContentType get_type() const final { + return MessageContentType::GiveawayLaunch; + } +}; + template static void store(const MessageContent *content, StorerT &storer) { CHECK(content != nullptr); @@ -1397,6 +1406,8 @@ static void store(const MessageContent *content, StorerT &storer) { store(m->months, storer); break; } + case MessageContentType::GiveawayLaunch: + break; default: UNREACHABLE(); } @@ -1971,6 +1982,9 @@ static void parse(unique_ptr &content, ParserT &parser) { content = std::move(m); break; } + case MessageContentType::GiveawayLaunch: + content = make_unique(); + break; default: is_bad = true; @@ -2594,6 +2608,7 @@ bool can_have_input_media(const Td *td, const MessageContent *content, bool is_s case MessageContentType::SetBackground: case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: + case MessageContentType::GiveawayLaunch: return false; case MessageContentType::Animation: case MessageContentType::Audio: @@ -2726,6 +2741,7 @@ SecretInputMedia get_secret_input_media(const MessageContent *content, Td *td, case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: break; default: UNREACHABLE(); @@ -2861,6 +2877,7 @@ static tl_object_ptr get_input_media_impl( case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: break; default: UNREACHABLE(); @@ -3036,6 +3053,7 @@ void delete_message_content_thumbnail(MessageContent *content, Td *td) { case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: break; default: UNREACHABLE(); @@ -3243,6 +3261,7 @@ Status can_send_message_content(DialogId dialog_id, const MessageContent *conten case MessageContentType::SetBackground: case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: + case MessageContentType::GiveawayLaunch: UNREACHABLE(); } return Status::OK(); @@ -3383,6 +3402,7 @@ static int32 get_message_content_media_index_mask(const MessageContent *content, case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: return 0; default: UNREACHABLE(); @@ -3613,6 +3633,8 @@ vector get_message_content_min_user_ids(const Td *td, const MessageConte break; case MessageContentType::Giveaway: break; + case MessageContentType::GiveawayLaunch: + break; default: UNREACHABLE(); break; @@ -4336,6 +4358,8 @@ void merge_message_contents(Td *td, const MessageContent *old_content, MessageCo } break; } + case MessageContentType::GiveawayLaunch: + break; default: UNREACHABLE(); break; @@ -4479,6 +4503,7 @@ bool merge_message_content_file_id(Td *td, MessageContent *message_content, File case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: LOG(ERROR) << "Receive new file " << new_file_id << " in a sent message of the type " << content_type; break; default: @@ -5541,6 +5566,7 @@ unique_ptr dup_message_content(Td *td, DialogId dialog_id, const case MessageContentType::SetBackground: case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: + case MessageContentType::GiveawayLaunch: return nullptr; default: UNREACHABLE(); @@ -6296,6 +6322,8 @@ tl_object_ptr get_message_content_object(const MessageCo return td_api::make_object( m->giveaway_parameters.get_premium_giveaway_parameters_object(td), m->quantity, m->months); } + case MessageContentType::GiveawayLaunch: + return td_api::make_object(); default: UNREACHABLE(); return nullptr; @@ -6724,6 +6752,7 @@ string get_message_content_search_text(const Td *td, const MessageContent *conte case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: return string(); default: UNREACHABLE(); @@ -7041,6 +7070,8 @@ void add_message_content_dependencies(Dependencies &dependencies, const MessageC content->giveaway_parameters.add_dependencies(dependencies); break; } + case MessageContentType::GiveawayLaunch: + break; default: UNREACHABLE(); break; diff --git a/td/telegram/MessageContentType.cpp b/td/telegram/MessageContentType.cpp index 7322e0e5b..cc057f648 100644 --- a/td/telegram/MessageContentType.cpp +++ b/td/telegram/MessageContentType.cpp @@ -132,6 +132,8 @@ StringBuilder &operator<<(StringBuilder &string_builder, MessageContentType cont return string_builder << "GiftCode"; case MessageContentType::Giveaway: return string_builder << "Giveaway"; + case MessageContentType::GiveawayLaunch: + return string_builder << "GiveawayLaunch"; default: return string_builder << "Invalid type " << static_cast(content_type); } @@ -200,6 +202,7 @@ bool is_allowed_media_group_content(MessageContentType content_type) { case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: return false; default: UNREACHABLE(); @@ -277,6 +280,7 @@ bool is_secret_message_content(int32 ttl, MessageContentType content_type) { case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: return false; default: UNREACHABLE(); @@ -347,6 +351,7 @@ bool is_service_message_content(MessageContentType content_type) { case MessageContentType::SetBackground: case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: + case MessageContentType::GiveawayLaunch: return true; default: UNREACHABLE(); @@ -417,6 +422,7 @@ bool can_have_message_content_caption(MessageContentType content_type) { case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: case MessageContentType::Giveaway: + case MessageContentType::GiveawayLaunch: return false; default: UNREACHABLE(); diff --git a/td/telegram/MessageContentType.h b/td/telegram/MessageContentType.h index 167e9c182..680a6c4f7 100644 --- a/td/telegram/MessageContentType.h +++ b/td/telegram/MessageContentType.h @@ -73,7 +73,8 @@ enum class MessageContentType : int32 { Story, WriteAccessAllowedByRequest, GiftCode, - Giveaway + Giveaway, + GiveawayLaunch }; // increase MessageUnsupported::CURRENT_VERSION each time a new message content type is added diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index fff8e3c9d..9e1934682 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -26325,6 +26325,7 @@ bool MessagesManager::can_edit_message(DialogId dialog_id, const Message *m, boo case MessageContentType::SetBackground: case MessageContentType::WriteAccessAllowedByRequest: case MessageContentType::GiftCode: + case MessageContentType::GiveawayLaunch: return false; default: UNREACHABLE();