Add messageCopyOptions.new_show_caption_above_media.
This commit is contained in:
parent
718c054d2c
commit
ec5e2353c3
@ -3402,7 +3402,8 @@ messageSendOptions disable_notification:Bool from_background:Bool protect_conten
|
||||
//@send_copy True, if content of the message needs to be copied without reference to the original sender. Always true if the message is forwarded to a secret chat or is local
|
||||
//@replace_caption True, if media caption of the message copy needs to be replaced. Ignored if send_copy is false
|
||||
//@new_caption New message caption; pass null to copy message without caption. Ignored if replace_caption is false
|
||||
messageCopyOptions send_copy:Bool replace_caption:Bool new_caption:formattedText = MessageCopyOptions;
|
||||
//@new_show_caption_above_media True, if new caption must be shown above the animation; otherwise new caption must be shown below the animation; not supported in secret chats. Ignored if replace_caption is false
|
||||
messageCopyOptions send_copy:Bool replace_caption:Bool new_caption:formattedText new_show_caption_above_media:Bool = MessageCopyOptions;
|
||||
|
||||
|
||||
//@class InputMessageContent @description The content of a message to send
|
||||
|
@ -18,6 +18,7 @@ namespace td {
|
||||
struct MessageCopyOptions {
|
||||
bool send_copy = false;
|
||||
bool replace_caption = false;
|
||||
bool new_invert_media = false;
|
||||
FormattedText new_caption;
|
||||
MessageInputReplyTo input_reply_to;
|
||||
unique_ptr<ReplyMarkup> reply_markup;
|
||||
@ -41,7 +42,8 @@ inline StringBuilder &operator<<(StringBuilder &string_builder, MessageCopyOptio
|
||||
if (copy_options.send_copy) {
|
||||
string_builder << "CopyOptions[replace_caption = " << copy_options.replace_caption;
|
||||
if (copy_options.replace_caption) {
|
||||
string_builder << ", new_caption = " << copy_options.new_caption;
|
||||
string_builder << ", new_caption = " << copy_options.new_caption
|
||||
<< ", new_show_caption_above_media = " << copy_options.new_invert_media;
|
||||
}
|
||||
if (copy_options.input_reply_to.is_valid()) {
|
||||
string_builder << ", in reply to " << copy_options.input_reply_to;
|
||||
|
@ -23598,6 +23598,10 @@ Result<InputMessageContent> MessagesManager::process_input_message_content(
|
||||
return Status::Error(400, "Message copying is restricted");
|
||||
}
|
||||
|
||||
auto new_invert_media =
|
||||
copy_options.replace_caption && is_allowed_invert_caption_message_content(copied_message->content->get_type())
|
||||
? copy_options.new_invert_media
|
||||
: copied_message->invert_media;
|
||||
unique_ptr<MessageContent> content = dup_message_content(td_, dialog_id, copied_message->content.get(),
|
||||
MessageContentDupType::Copy, std::move(copy_options));
|
||||
if (content == nullptr) {
|
||||
@ -23605,7 +23609,7 @@ Result<InputMessageContent> MessagesManager::process_input_message_content(
|
||||
}
|
||||
|
||||
return InputMessageContent(std::move(content), get_message_disable_web_page_preview(copied_message),
|
||||
copied_message->invert_media, false, MessageSelfDestructType(), UserId(),
|
||||
new_invert_media, false, MessageSelfDestructType(), UserId(),
|
||||
copied_message->send_emoji);
|
||||
}
|
||||
|
||||
@ -23630,6 +23634,7 @@ Result<MessageCopyOptions> MessagesManager::process_message_copy_options(
|
||||
if (result.replace_caption) {
|
||||
TRY_RESULT_ASSIGN(result.new_caption, get_formatted_text(td_, dialog_id, std::move(options->new_caption_),
|
||||
td_->auth_manager_->is_bot(), true, false, false));
|
||||
result.new_invert_media = options->new_show_caption_above_media_;
|
||||
}
|
||||
return std::move(result);
|
||||
}
|
||||
@ -26293,6 +26298,10 @@ Result<MessagesManager::ForwardedMessages> MessagesManager::get_forwarded_messag
|
||||
: MessageContentDupType::Forward;
|
||||
auto input_reply_to = std::move(copy_options[i].input_reply_to);
|
||||
auto reply_markup = std::move(copy_options[i].reply_markup);
|
||||
auto new_invert_media = is_local_copy && copy_options[i].replace_caption &&
|
||||
is_allowed_invert_caption_message_content(forwarded_message->content->get_type())
|
||||
? copy_options[i].new_invert_media
|
||||
: forwarded_message->invert_media;
|
||||
unique_ptr<MessageContent> content =
|
||||
dup_message_content(td_, to_dialog_id, forwarded_message->content.get(), type, std::move(copy_options[i]));
|
||||
if (content == nullptr) {
|
||||
@ -26335,13 +26344,13 @@ Result<MessagesManager::ForwardedMessages> MessagesManager::get_forwarded_messag
|
||||
if (is_local_copy) {
|
||||
auto original_reply_to_message_id =
|
||||
forwarded_message->replied_message_info.get_same_chat_reply_to_message_id(true);
|
||||
copied_messages.push_back(
|
||||
{std::move(content), std::move(input_reply_to), forwarded_message->message_id, original_reply_to_message_id,
|
||||
std::move(reply_markup), forwarded_message->media_album_id,
|
||||
get_message_disable_web_page_preview(forwarded_message), forwarded_message->invert_media, i});
|
||||
copied_messages.push_back({std::move(content), std::move(input_reply_to), forwarded_message->message_id,
|
||||
original_reply_to_message_id, std::move(reply_markup),
|
||||
forwarded_message->media_album_id,
|
||||
get_message_disable_web_page_preview(forwarded_message), new_invert_media, i});
|
||||
} else {
|
||||
forwarded_message_contents.push_back(
|
||||
{std::move(content), forwarded_message->invert_media, forwarded_message->media_album_id, i});
|
||||
{std::move(content), new_invert_media, forwarded_message->media_album_id, i});
|
||||
}
|
||||
}
|
||||
result.top_thread_message_id = top_thread_message_id;
|
||||
|
@ -5290,7 +5290,8 @@ class CliClient final : public Actor {
|
||||
get_args(args, chat_id, from_chat_id, from_message_id);
|
||||
td_api::object_ptr<td_api::messageCopyOptions> copy_options;
|
||||
if (op == "scopy") {
|
||||
copy_options = td_api::make_object<td_api::messageCopyOptions>(true, rand_bool(), as_caption("_as_d"));
|
||||
copy_options = td_api::make_object<td_api::messageCopyOptions>(true, rand_bool(), as_caption("_as_d"),
|
||||
show_caption_above_media_);
|
||||
}
|
||||
send_message(chat_id, td_api::make_object<td_api::inputMessageForwarded>(from_chat_id, from_message_id, true,
|
||||
std::move(copy_options)));
|
||||
|
Loading…
Reference in New Issue
Block a user