Add td_api::getCustomEmojiReactionAnimations.
This commit is contained in:
parent
a33eb5233c
commit
de1ed3275f
@ -163,6 +163,9 @@ remoteFile id:string unique_id:string is_uploading_active:Bool is_uploading_comp
|
|||||||
//@remote Information about the remote copy of the file
|
//@remote Information about the remote copy of the file
|
||||||
file id:int32 size:int53 expected_size:int53 local:localFile remote:remoteFile = File;
|
file id:int32 size:int53 expected_size:int53 local:localFile remote:remoteFile = File;
|
||||||
|
|
||||||
|
//@description Represents a list of files @files List of files
|
||||||
|
files files:vector<file> = Files;
|
||||||
|
|
||||||
|
|
||||||
//@class InputFile @description Points to a file
|
//@class InputFile @description Points to a file
|
||||||
|
|
||||||
@ -5166,6 +5169,9 @@ editMessageSchedulingState chat_id:int53 message_id:int53 scheduling_state:Messa
|
|||||||
//@description Returns information about a emoji reaction. Returns a 404 error if the reaction is not found @emoji Text representation of the reaction
|
//@description Returns information about a emoji reaction. Returns a 404 error if the reaction is not found @emoji Text representation of the reaction
|
||||||
getEmojiReaction emoji:string = EmojiReaction;
|
getEmojiReaction emoji:string = EmojiReaction;
|
||||||
|
|
||||||
|
//@description Returns TGS files with generic animations for custom emoji reactions
|
||||||
|
getCustomEmojiReactionAnimations = Files;
|
||||||
|
|
||||||
//@description Returns reactions, which can be added to a message. The list can change after updateActiveEmojiReactions, updateChatAvailableReactions for the chat, or updateMessageInteractionInfo for the message
|
//@description Returns reactions, which can be added to a message. The list can change after updateActiveEmojiReactions, updateChatAvailableReactions for the chat, or updateMessageInteractionInfo for the message
|
||||||
//@chat_id Identifier of the chat to which the message belongs
|
//@chat_id Identifier of the chat to which the message belongs
|
||||||
//@message_id Identifier of the message
|
//@message_id Identifier of the message
|
||||||
|
@ -1678,6 +1678,7 @@ void StickersManager::on_load_special_sticker_set(const SpecialStickerSetType &t
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (type == SpecialStickerSetType::generic_animations()) {
|
if (type == SpecialStickerSetType::generic_animations()) {
|
||||||
|
set_promises(pending_get_generic_animations_queries_);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (type == SpecialStickerSetType::default_statuses()) {
|
if (type == SpecialStickerSetType::default_statuses()) {
|
||||||
@ -5500,6 +5501,35 @@ void StickersManager::get_all_animated_emojis(bool is_recursive,
|
|||||||
promise.set_value(td_api::make_object<td_api::emojis>(std::move(emojis)));
|
promise.set_value(td_api::make_object<td_api::emojis>(std::move(emojis)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void StickersManager::get_custom_emoji_reaction_generic_animations(
|
||||||
|
bool is_recursive, Promise<td_api::object_ptr<td_api::files>> &&promise) {
|
||||||
|
TRY_STATUS_PROMISE(promise, G()->close_status());
|
||||||
|
|
||||||
|
auto &special_sticker_set = add_special_sticker_set(SpecialStickerSetType::generic_animations());
|
||||||
|
auto sticker_set = get_sticker_set(special_sticker_set.id_);
|
||||||
|
if (sticker_set == nullptr || !sticker_set->was_loaded_) {
|
||||||
|
if (is_recursive) {
|
||||||
|
return promise.set_value(td_api::make_object<td_api::files>());
|
||||||
|
}
|
||||||
|
|
||||||
|
pending_get_generic_animations_queries_.push_back(PromiseCreator::lambda(
|
||||||
|
[actor_id = actor_id(this), promise = std::move(promise)](Result<Unit> &&result) mutable {
|
||||||
|
if (result.is_error()) {
|
||||||
|
promise.set_error(result.move_as_error());
|
||||||
|
} else {
|
||||||
|
send_closure(actor_id, &StickersManager::get_custom_emoji_reaction_generic_animations, true,
|
||||||
|
std::move(promise));
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
load_special_sticker_set(special_sticker_set);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto files = transform(sticker_set->sticker_ids_,
|
||||||
|
[&](FileId sticker_id) { return td_->file_manager_->get_file_object(sticker_id); });
|
||||||
|
promise.set_value(td_api::make_object<td_api::files>(std::move(files)));
|
||||||
|
}
|
||||||
|
|
||||||
void StickersManager::get_default_emoji_statuses(bool is_recursive,
|
void StickersManager::get_default_emoji_statuses(bool is_recursive,
|
||||||
Promise<td_api::object_ptr<td_api::emojiStatuses>> &&promise) {
|
Promise<td_api::object_ptr<td_api::emojiStatuses>> &&promise) {
|
||||||
TRY_STATUS_PROMISE(promise, G()->close_status());
|
TRY_STATUS_PROMISE(promise, G()->close_status());
|
||||||
|
@ -103,6 +103,9 @@ class StickersManager final : public Actor {
|
|||||||
|
|
||||||
void get_all_animated_emojis(bool is_recursive, Promise<td_api::object_ptr<td_api::emojis>> &&promise);
|
void get_all_animated_emojis(bool is_recursive, Promise<td_api::object_ptr<td_api::emojis>> &&promise);
|
||||||
|
|
||||||
|
void get_custom_emoji_reaction_generic_animations(bool is_recursive,
|
||||||
|
Promise<td_api::object_ptr<td_api::files>> &&promise);
|
||||||
|
|
||||||
void get_default_emoji_statuses(bool is_recursive, Promise<td_api::object_ptr<td_api::emojiStatuses>> &&promise);
|
void get_default_emoji_statuses(bool is_recursive, Promise<td_api::object_ptr<td_api::emojiStatuses>> &&promise);
|
||||||
|
|
||||||
bool is_default_emoji_status(int64 custom_emoji_id);
|
bool is_default_emoji_status(int64 custom_emoji_id);
|
||||||
@ -986,7 +989,7 @@ class StickersManager final : public Actor {
|
|||||||
|
|
||||||
vector<Promise<Unit>> pending_get_animated_emoji_queries_;
|
vector<Promise<Unit>> pending_get_animated_emoji_queries_;
|
||||||
vector<Promise<Unit>> pending_get_premium_gift_option_sticker_queries_;
|
vector<Promise<Unit>> pending_get_premium_gift_option_sticker_queries_;
|
||||||
|
vector<Promise<Unit>> pending_get_generic_animations_queries_;
|
||||||
vector<Promise<Unit>> pending_get_default_statuses_queries_;
|
vector<Promise<Unit>> pending_get_default_statuses_queries_;
|
||||||
|
|
||||||
double next_click_animated_emoji_message_time_ = 0;
|
double next_click_animated_emoji_message_time_ = 0;
|
||||||
|
@ -5204,6 +5204,12 @@ void Td::on_request(uint64 id, const td_api::getEmojiReaction &request) {
|
|||||||
send_closure(actor_id(this), &Td::send_result, id, stickers_manager_->get_emoji_reaction_object(request.emoji_));
|
send_closure(actor_id(this), &Td::send_result, id, stickers_manager_->get_emoji_reaction_object(request.emoji_));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Td::on_request(uint64 id, const td_api::getCustomEmojiReactionAnimations &request) {
|
||||||
|
CHECK_IS_USER();
|
||||||
|
CREATE_REQUEST_PROMISE();
|
||||||
|
stickers_manager_->get_custom_emoji_reaction_generic_animations(false, std::move(promise));
|
||||||
|
}
|
||||||
|
|
||||||
void Td::on_request(uint64 id, const td_api::getMessageAvailableReactions &request) {
|
void Td::on_request(uint64 id, const td_api::getMessageAvailableReactions &request) {
|
||||||
CHECK_IS_USER();
|
CHECK_IS_USER();
|
||||||
auto r_reactions =
|
auto r_reactions =
|
||||||
|
@ -658,6 +658,8 @@ class Td final : public Actor {
|
|||||||
|
|
||||||
void on_request(uint64 id, const td_api::getEmojiReaction &request);
|
void on_request(uint64 id, const td_api::getEmojiReaction &request);
|
||||||
|
|
||||||
|
void on_request(uint64 id, const td_api::getCustomEmojiReactionAnimations &request);
|
||||||
|
|
||||||
void on_request(uint64 id, const td_api::getMessageAvailableReactions &request);
|
void on_request(uint64 id, const td_api::getMessageAvailableReactions &request);
|
||||||
|
|
||||||
void on_request(uint64 id, td_api::addMessageReaction &request);
|
void on_request(uint64 id, td_api::addMessageReaction &request);
|
||||||
|
@ -2240,6 +2240,8 @@ class CliClient final : public Actor {
|
|||||||
string emoji;
|
string emoji;
|
||||||
get_args(args, emoji);
|
get_args(args, emoji);
|
||||||
send_request(td_api::make_object<td_api::getEmojiReaction>(emoji));
|
send_request(td_api::make_object<td_api::getEmojiReaction>(emoji));
|
||||||
|
} else if (op == "gcera") {
|
||||||
|
send_request(td_api::make_object<td_api::getCustomEmojiReactionAnimations>());
|
||||||
} else if (op == "gmar") {
|
} else if (op == "gmar") {
|
||||||
ChatId chat_id;
|
ChatId chat_id;
|
||||||
MessageId message_id;
|
MessageId message_id;
|
||||||
|
Loading…
Reference in New Issue
Block a user