Add draftMessage.effect_id.
This commit is contained in:
parent
d51b4e18b0
commit
65c6f3a23a
@ -1783,7 +1783,8 @@ reactionNotificationSettings message_reaction_source:ReactionNotificationSource
|
||||
//@reply_to Information about the message to be replied; must be of the type inputMessageReplyToMessage; may be null if none
|
||||
//@date Point in time (Unix timestamp) when the draft was created
|
||||
//@input_message_text Content of the message draft; must be of the type inputMessageText, inputMessageVideoNote, or inputMessageVoiceNote
|
||||
draftMessage reply_to:InputMessageReplyTo date:int32 input_message_text:InputMessageContent = DraftMessage;
|
||||
//@effect_id Identifier of the effect to apply to the message when it is sent; 0 if none
|
||||
draftMessage reply_to:InputMessageReplyTo date:int32 input_message_text:InputMessageContent effect_id:int64 = DraftMessage;
|
||||
|
||||
|
||||
//@class ChatType @description Describes the type of chat
|
||||
@ -3483,7 +3484,7 @@ messageSelfDestructTypeImmediately = MessageSelfDestructType;
|
||||
//@protect_content Pass true if the content of the message must be protected from forwarding and saving; for bots only
|
||||
//@update_order_of_installed_sticker_sets Pass true if the user explicitly chosen a sticker or a custom emoji from an installed sticker set; applicable only to sendMessage and sendMessageAlbum
|
||||
//@scheduling_state Message scheduling state; pass null to send message immediately. Messages sent to a secret chat, live location messages and self-destructing messages can't be scheduled
|
||||
//@effect_id Identifier of the effect to apply to the message; applicable only to sendMessage and sendMessageAlbum in private chats
|
||||
//@effect_id Identifier of the effect to apply to the message; pass 0 if none; applicable only to sendMessage and sendMessageAlbum in private chats
|
||||
//@sending_id Non-persistent identifier, which will be returned back in messageSendingStatePending object and can be used to match sent messages and corresponding updateNewMessage updates
|
||||
//@only_preview Pass true to get a fake message instead of actually sending them
|
||||
messageSendOptions disable_notification:Bool from_background:Bool protect_content:Bool update_order_of_installed_sticker_sets:Bool scheduling_state:MessageSchedulingState effect_id:int64 sending_id:int32 only_preview:Bool = MessageSendOptions;
|
||||
|
@ -64,12 +64,15 @@ class SaveDraftMessageQuery final : public Td::ResultHandler {
|
||||
if (media != nullptr) {
|
||||
flags |= telegram_api::messages_saveDraft::MEDIA_MASK;
|
||||
}
|
||||
if (draft_message->message_effect_id_ != 0) {
|
||||
flags |= telegram_api::messages_saveDraft::EFFECT_MASK;
|
||||
}
|
||||
}
|
||||
send_query(G()->net_query_creator().create(
|
||||
telegram_api::messages_saveDraft(
|
||||
flags, false /*ignored*/, false /*ignored*/, std::move(input_reply_to), std::move(input_peer),
|
||||
draft_message == nullptr ? string() : draft_message->input_message_text_.text.text,
|
||||
std::move(input_message_entities), std::move(media), 0),
|
||||
std::move(input_message_entities), std::move(media), draft_message->message_effect_id_),
|
||||
{{dialog_id}}));
|
||||
}
|
||||
|
||||
@ -381,7 +384,8 @@ bool DraftMessage::need_update_to(const DraftMessage &other, bool from_update) c
|
||||
if (is_local()) {
|
||||
return !from_update || other.is_local();
|
||||
}
|
||||
if (message_input_reply_to_ == other.message_input_reply_to_ && input_message_text_ == other.input_message_text_) {
|
||||
if (message_input_reply_to_ == other.message_input_reply_to_ && input_message_text_ == other.input_message_text_ &&
|
||||
message_effect_id_ == other.message_effect_id_) {
|
||||
return date_ < other.date_;
|
||||
} else {
|
||||
return !from_update || date_ <= other.date_;
|
||||
@ -401,7 +405,7 @@ td_api::object_ptr<td_api::draftMessage> DraftMessage::get_draft_message_object(
|
||||
input_message_content = input_message_text_.get_input_message_text_object();
|
||||
}
|
||||
return td_api::make_object<td_api::draftMessage>(message_input_reply_to_.get_input_message_reply_to_object(td), date_,
|
||||
std::move(input_message_content));
|
||||
std::move(input_message_content), message_effect_id_);
|
||||
}
|
||||
|
||||
DraftMessage::DraftMessage(Td *td, telegram_api::object_ptr<telegram_api::draftMessage> &&draft_message) {
|
||||
@ -428,6 +432,7 @@ DraftMessage::DraftMessage(Td *td, telegram_api::object_ptr<telegram_api::draftM
|
||||
}
|
||||
input_message_text_ = InputMessageText(std::move(draft_text), std::move(web_page_url), draft_message->no_webpage_,
|
||||
force_small_media, force_large_media, draft_message->invert_media_, false);
|
||||
message_effect_id_ = draft_message->effect_;
|
||||
}
|
||||
|
||||
Result<unique_ptr<DraftMessage>> DraftMessage::get_draft_message(
|
||||
@ -440,6 +445,7 @@ Result<unique_ptr<DraftMessage>> DraftMessage::get_draft_message(
|
||||
auto result = make_unique<DraftMessage>();
|
||||
result->message_input_reply_to_ = td->messages_manager_->create_message_input_reply_to(
|
||||
dialog_id, top_thread_message_id, std::move(draft_message->reply_to_), true);
|
||||
result->message_effect_id_ = draft_message->effect_id_;
|
||||
|
||||
auto input_message_content = std::move(draft_message->input_message_text_);
|
||||
if (input_message_content != nullptr) {
|
||||
|
@ -46,6 +46,7 @@ class DraftMessage {
|
||||
MessageInputReplyTo message_input_reply_to_;
|
||||
InputMessageText input_message_text_;
|
||||
unique_ptr<DraftMessageContent> local_content_;
|
||||
int64 message_effect_id_ = 0;
|
||||
|
||||
friend class SaveDraftMessageQuery;
|
||||
|
||||
|
@ -22,10 +22,12 @@ void DraftMessage::store(StorerT &storer) const {
|
||||
bool has_input_message_text = !input_message_text_.is_empty();
|
||||
bool has_message_input_reply_to = !message_input_reply_to_.is_empty();
|
||||
bool has_local_content = local_content_ != nullptr;
|
||||
bool has_message_effect_id = message_effect_id_ != 0;
|
||||
BEGIN_STORE_FLAGS();
|
||||
STORE_FLAG(has_input_message_text);
|
||||
STORE_FLAG(has_message_input_reply_to);
|
||||
STORE_FLAG(has_local_content);
|
||||
STORE_FLAG(has_message_effect_id);
|
||||
END_STORE_FLAGS();
|
||||
td::store(date_, storer);
|
||||
if (has_input_message_text) {
|
||||
@ -37,6 +39,9 @@ void DraftMessage::store(StorerT &storer) const {
|
||||
if (has_local_content) {
|
||||
store_draft_message_content(local_content_.get(), storer);
|
||||
}
|
||||
if (has_message_effect_id) {
|
||||
td::store(message_effect_id_, storer);
|
||||
}
|
||||
}
|
||||
|
||||
template <class ParserT>
|
||||
@ -45,12 +50,14 @@ void DraftMessage::parse(ParserT &parser) {
|
||||
bool has_input_message_text;
|
||||
bool has_message_input_reply_to = false;
|
||||
bool has_local_content = false;
|
||||
bool has_message_effect_id = false;
|
||||
if (parser.version() >= static_cast<int32>(Version::SupportRepliesInOtherChats)) {
|
||||
has_legacy_reply_to_message_id = false;
|
||||
BEGIN_PARSE_FLAGS();
|
||||
PARSE_FLAG(has_input_message_text);
|
||||
PARSE_FLAG(has_message_input_reply_to);
|
||||
PARSE_FLAG(has_local_content);
|
||||
PARSE_FLAG(has_message_effect_id);
|
||||
END_PARSE_FLAGS();
|
||||
} else {
|
||||
has_legacy_reply_to_message_id = true;
|
||||
@ -71,6 +78,9 @@ void DraftMessage::parse(ParserT &parser) {
|
||||
if (has_local_content) {
|
||||
parse_draft_message_content(local_content_, parser);
|
||||
}
|
||||
if (has_message_effect_id) {
|
||||
td::parse(message_effect_id_, parser);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace td
|
||||
|
@ -4490,7 +4490,8 @@ class CliClient final : public Actor {
|
||||
draft_message = td_api::make_object<td_api::draftMessage>(
|
||||
std::move(reply_to), 0,
|
||||
td_api::make_object<td_api::inputMessageText>(as_formatted_text(message, std::move(entities)),
|
||||
get_link_preview_options(), false));
|
||||
get_link_preview_options(), false),
|
||||
message_effect_id_);
|
||||
}
|
||||
send_request(
|
||||
td_api::make_object<td_api::setChatDraftMessage>(chat_id, message_thread_id_, std::move(draft_message)));
|
||||
@ -4503,18 +4504,19 @@ class CliClient final : public Actor {
|
||||
td_api::make_object<td_api::draftMessage>(
|
||||
nullptr, 0,
|
||||
td_api::make_object<td_api::inputMessageVideoNote>(as_input_file(video_path), nullptr, 10, 5,
|
||||
get_message_self_destruct_type()))));
|
||||
get_message_self_destruct_type()),
|
||||
message_effect_id_)));
|
||||
} else if (op == "scdmvoice") {
|
||||
ChatId chat_id;
|
||||
string voice_path;
|
||||
get_args(args, chat_id, voice_path);
|
||||
send_request(td_api::make_object<td_api::setChatDraftMessage>(
|
||||
chat_id, message_thread_id_,
|
||||
td_api::make_object<td_api::draftMessage>(
|
||||
nullptr, 0,
|
||||
td_api::make_object<td_api::inputMessageVoiceNote>(as_input_file(voice_path), 0, "abacaba",
|
||||
as_caption("voice caption"),
|
||||
get_message_self_destruct_type()))));
|
||||
td_api::make_object<td_api::draftMessage>(nullptr, 0,
|
||||
td_api::make_object<td_api::inputMessageVoiceNote>(
|
||||
as_input_file(voice_path), 0, "abacaba",
|
||||
as_caption("voice caption"), get_message_self_destruct_type()),
|
||||
message_effect_id_)));
|
||||
} else if (op == "cadm") {
|
||||
send_request(td_api::make_object<td_api::clearAllDraftMessages>());
|
||||
} else if (op == "tchpc") {
|
||||
|
Loading…
Reference in New Issue
Block a user