Add separate createChatSubscriptionInviteLink.
This commit is contained in:
parent
357e59a781
commit
8cefcc6ac7
@ -10130,10 +10130,14 @@ replacePrimaryChatInviteLink chat_id:int53 = ChatInviteLink;
|
||||
//@expiration_date Point in time (Unix timestamp) when the link will expire; pass 0 if never
|
||||
//@member_limit The maximum number of chat members that can join the chat via the link simultaneously; 0-99999; pass 0 if not limited
|
||||
//@creates_join_request Pass true if users joining the chat via the link need to be approved by chat administrators. In this case, member_limit must be 0
|
||||
//@subscription_pricing Information about subscription plan that will be applied to the users joining the chat via the link; for channel chats only; pass null if the link doesn't require subscription.
|
||||
//-Subscription period must be 2592000 in production environment, and 60 or 300 if Telegram test environment is used. If non-null, then expiration_date, member_limit and creates_join_request
|
||||
//-must not be used
|
||||
createChatInviteLink chat_id:int53 name:string expiration_date:int32 member_limit:int32 creates_join_request:Bool subscription_pricing:starSubscriptionPricing = ChatInviteLink;
|
||||
createChatInviteLink chat_id:int53 name:string expiration_date:int32 member_limit:int32 creates_join_request:Bool = ChatInviteLink;
|
||||
|
||||
//@description Creates a new subscription invite link for a channel chat. Requires can_invite_users right in the chat
|
||||
//@chat_id Chat identifier
|
||||
//@name Invite link name; 0-32 characters
|
||||
//@subscription_pricing Information about subscription plan that will be applied to the users joining the chat via the link.
|
||||
//-Subscription period must be 2592000 in production environment, and 60 or 300 if Telegram test environment is used
|
||||
createChatSubscriptionInviteLink chat_id:int53 name:string subscription_pricing:starSubscriptionPricing = ChatInviteLink;
|
||||
|
||||
//@description Edits a non-primary invite link for a chat. Available for basic groups, supergroups, and channels.
|
||||
//-If the link creates a subscription, then expiration_date, member_limit and creates_join_request must not be used
|
||||
|
@ -977,8 +977,16 @@ void DialogInviteLinkManager::on_get_permanent_dialog_invite_link(DialogId dialo
|
||||
|
||||
void DialogInviteLinkManager::export_dialog_invite_link(DialogId dialog_id, string title, int32 expire_date,
|
||||
int32 usage_limit, bool creates_join_request,
|
||||
StarSubscriptionPricing subscription_pricing, bool is_permanent,
|
||||
StarSubscriptionPricing subscription_pricing,
|
||||
bool is_subscription, bool is_permanent,
|
||||
Promise<td_api::object_ptr<td_api::chatInviteLink>> &&promise) {
|
||||
if (is_subscription) {
|
||||
if (subscription_pricing.is_empty()) {
|
||||
return promise.set_error(Status::Error(400, "Invalid subscription pricing specified"));
|
||||
}
|
||||
} else {
|
||||
CHECK(subscription_pricing.is_empty());
|
||||
}
|
||||
td_->user_manager_->get_me(PromiseCreator::lambda(
|
||||
[actor_id = actor_id(this), dialog_id, title = std::move(title), expire_date, usage_limit, creates_join_request,
|
||||
subscription_pricing, is_permanent, promise = std::move(promise)](Result<Unit> &&result) mutable {
|
||||
|
@ -57,7 +57,8 @@ class DialogInviteLinkManager final : public Actor {
|
||||
|
||||
void export_dialog_invite_link(DialogId dialog_id, string title, int32 expire_date, int32 usage_limit,
|
||||
bool creates_join_request, StarSubscriptionPricing subscription_pricing,
|
||||
bool is_permanent, Promise<td_api::object_ptr<td_api::chatInviteLink>> &&promise);
|
||||
bool is_subscription, bool is_permanent,
|
||||
Promise<td_api::object_ptr<td_api::chatInviteLink>> &&promise);
|
||||
|
||||
void edit_dialog_invite_link(DialogId dialog_id, const string &link, string title, int32 expire_date,
|
||||
int32 usage_limit, bool creates_join_request,
|
||||
|
@ -6778,8 +6778,8 @@ void Td::on_request(uint64 id, const td_api::getChatAdministrators &request) {
|
||||
|
||||
void Td::on_request(uint64 id, const td_api::replacePrimaryChatInviteLink &request) {
|
||||
CREATE_REQUEST_PROMISE();
|
||||
dialog_invite_link_manager_->export_dialog_invite_link(DialogId(request.chat_id_), string(), 0, 0, false, {}, true,
|
||||
std::move(promise));
|
||||
dialog_invite_link_manager_->export_dialog_invite_link(DialogId(request.chat_id_), string(), 0, 0, false,
|
||||
StarSubscriptionPricing(), false, true, std::move(promise));
|
||||
}
|
||||
|
||||
void Td::on_request(uint64 id, td_api::createChatInviteLink &request) {
|
||||
@ -6787,8 +6787,15 @@ void Td::on_request(uint64 id, td_api::createChatInviteLink &request) {
|
||||
CREATE_REQUEST_PROMISE();
|
||||
dialog_invite_link_manager_->export_dialog_invite_link(
|
||||
DialogId(request.chat_id_), std::move(request.name_), request.expiration_date_, request.member_limit_,
|
||||
request.creates_join_request_, StarSubscriptionPricing(std::move(request.subscription_pricing_)), false,
|
||||
std::move(promise));
|
||||
request.creates_join_request_, StarSubscriptionPricing(), false, false, std::move(promise));
|
||||
}
|
||||
|
||||
void Td::on_request(uint64 id, td_api::createChatSubscriptionInviteLink &request) {
|
||||
CLEAN_INPUT_STRING(request.name_);
|
||||
CREATE_REQUEST_PROMISE();
|
||||
dialog_invite_link_manager_->export_dialog_invite_link(
|
||||
DialogId(request.chat_id_), std::move(request.name_), 0, 0, false,
|
||||
StarSubscriptionPricing(std::move(request.subscription_pricing_)), true, false, std::move(promise));
|
||||
}
|
||||
|
||||
void Td::on_request(uint64 id, td_api::editChatInviteLink &request) {
|
||||
|
@ -1276,6 +1276,8 @@ class Td final : public Actor {
|
||||
|
||||
void on_request(uint64 id, td_api::createChatInviteLink &request);
|
||||
|
||||
void on_request(uint64 id, td_api::createChatSubscriptionInviteLink &request);
|
||||
|
||||
void on_request(uint64 id, td_api::editChatInviteLink &request);
|
||||
|
||||
void on_request(uint64 id, td_api::getChatInviteLink &request);
|
||||
|
@ -4376,12 +4376,17 @@ class CliClient final : public Actor {
|
||||
int32 expiration_date;
|
||||
int32 member_limit;
|
||||
bool creates_join_request;
|
||||
get_args(args, chat_id, name, expiration_date, member_limit, creates_join_request);
|
||||
send_request(td_api::make_object<td_api::createChatInviteLink>(chat_id, name, expiration_date, member_limit,
|
||||
creates_join_request));
|
||||
} else if (op == "ccsil") {
|
||||
ChatId chat_id;
|
||||
string name;
|
||||
int32 period;
|
||||
int64 star_count;
|
||||
get_args(args, chat_id, name, expiration_date, member_limit, creates_join_request, period, star_count);
|
||||
send_request(td_api::make_object<td_api::createChatInviteLink>(
|
||||
chat_id, name, expiration_date, member_limit, creates_join_request,
|
||||
star_count == 0 ? nullptr : td_api::make_object<td_api::starSubscriptionPricing>(period, star_count)));
|
||||
get_args(args, chat_id, name, period, star_count);
|
||||
send_request(td_api::make_object<td_api::createChatSubscriptionInviteLink>(
|
||||
chat_id, name, td_api::make_object<td_api::starSubscriptionPricing>(period, star_count)));
|
||||
} else if (op == "ecil") {
|
||||
ChatId chat_id;
|
||||
string invite_link;
|
||||
|
Loading…
Reference in New Issue
Block a user