Add td_api::messagePremiumGiveawayCreated.

This commit is contained in:
levlam 2023-10-16 11:31:11 +03:00
parent 294538ec5b
commit 84d628f05d
6 changed files with 46 additions and 3 deletions

View File

@ -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

View File

@ -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();

View File

@ -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 <class StorerT>
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<MessageContent> &content, ParserT &parser) {
content = std::move(m);
break;
}
case MessageContentType::GiveawayLaunch:
content = make_unique<MessageGiveawayLaunch>();
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<telegram_api::InputMedia> 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<UserId> 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<MessageContent> 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<td_api::MessageContent> get_message_content_object(const MessageCo
return td_api::make_object<td_api::messagePremiumGiveaway>(
m->giveaway_parameters.get_premium_giveaway_parameters_object(td), m->quantity, m->months);
}
case MessageContentType::GiveawayLaunch:
return td_api::make_object<td_api::messagePremiumGiveawayCreated>();
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;

View File

@ -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<int32>(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();

View File

@ -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

View File

@ -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();