Support giveaway channels in *ChannelFromMessage.
This commit is contained in:
parent
11c20c0417
commit
9260d38618
@ -65,6 +65,12 @@ Result<GiveawayParameters> GiveawayParameters::get_giveaway_parameters(
|
||||
parameters->winners_selection_date_, vector<string>(parameters->country_codes_));
|
||||
}
|
||||
|
||||
vector<ChannelId> GiveawayParameters::get_channel_ids() const {
|
||||
auto result = additional_channel_ids_;
|
||||
result.push_back(boosted_channel_id_);
|
||||
return result;
|
||||
}
|
||||
|
||||
void GiveawayParameters::add_dependencies(Dependencies &dependencies) const {
|
||||
dependencies.add_dialog_and_dependencies(DialogId(boosted_channel_id_));
|
||||
for (auto channel_id : additional_channel_ids_) {
|
||||
|
@ -63,6 +63,8 @@ class GiveawayParameters {
|
||||
return DialogId(boosted_channel_id_);
|
||||
}
|
||||
|
||||
vector<ChannelId> get_channel_ids() const;
|
||||
|
||||
void add_dependencies(Dependencies &dependencies) const;
|
||||
|
||||
telegram_api::object_ptr<telegram_api::inputStorePaymentPremiumGiveaway> get_input_store_payment_premium_giveaway(
|
||||
|
@ -3759,6 +3759,18 @@ vector<UserId> get_message_content_min_user_ids(const Td *td, const MessageConte
|
||||
UNREACHABLE();
|
||||
break;
|
||||
}
|
||||
// not supported server-side
|
||||
// return get_user_ids(get_message_content_text(message_content));
|
||||
return {};
|
||||
}
|
||||
|
||||
vector<ChannelId> get_message_content_min_channel_ids(const Td *td, const MessageContent *message_content) {
|
||||
switch (message_content->get_type()) {
|
||||
case MessageContentType::Giveaway: {
|
||||
const auto *content = static_cast<const MessageGiveaway *>(message_content);
|
||||
return content->giveaway_parameters.get_channel_ids();
|
||||
}
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
|
@ -157,6 +157,8 @@ std::pair<InputGroupCallId, bool> get_message_content_group_call_info(const Mess
|
||||
|
||||
vector<UserId> get_message_content_min_user_ids(const Td *td, const MessageContent *message_content);
|
||||
|
||||
vector<ChannelId> get_message_content_min_channel_ids(const Td *td, const MessageContent *message_content);
|
||||
|
||||
vector<UserId> get_message_content_added_user_ids(const MessageContent *content);
|
||||
|
||||
UserId get_message_content_deleted_user_id(const MessageContent *content);
|
||||
|
@ -13148,7 +13148,7 @@ vector<UserId> MessagesManager::get_message_user_ids(const Message *m) const {
|
||||
return user_ids;
|
||||
}
|
||||
|
||||
vector<ChannelId> MessagesManager::get_message_channel_ids(const Message *m) {
|
||||
vector<ChannelId> MessagesManager::get_message_channel_ids(const Message *m) const {
|
||||
vector<ChannelId> channel_ids;
|
||||
if (m->sender_dialog_id.is_valid() && m->sender_dialog_id.get_type() == DialogType::Channel) {
|
||||
channel_ids.push_back(m->sender_dialog_id.get_channel_id());
|
||||
@ -13160,6 +13160,7 @@ vector<ChannelId> MessagesManager::get_message_channel_ids(const Message *m) {
|
||||
m->forward_info->from_dialog_id.get_type() == DialogType::Channel) {
|
||||
channel_ids.push_back(m->forward_info->from_dialog_id.get_channel_id());
|
||||
}
|
||||
append(channel_ids, get_message_content_min_channel_ids(td_, m->content.get()));
|
||||
return channel_ids;
|
||||
}
|
||||
|
||||
|
@ -1723,7 +1723,7 @@ class MessagesManager final : public Actor {
|
||||
|
||||
vector<UserId> get_message_user_ids(const Message *m) const;
|
||||
|
||||
static vector<ChannelId> get_message_channel_ids(const Message *m);
|
||||
vector<ChannelId> get_message_channel_ids(const Message *m) const;
|
||||
|
||||
static bool is_dialog_inited(const Dialog *d);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user