Use request promise ib getChatMessageCalendar.
This commit is contained in:
parent
a1e41ac1d4
commit
c39b7dce9a
@ -1695,19 +1695,19 @@ class ReadDiscussionQuery final : public Td::ResultHandler {
|
||||
};
|
||||
|
||||
class GetSearchResultCalendarQuery final : public Td::ResultHandler {
|
||||
Promise<Unit> promise_;
|
||||
Promise<td_api::object_ptr<td_api::messageCalendar>> promise_;
|
||||
DialogId dialog_id_;
|
||||
SavedMessagesTopicId saved_messages_topic_id_;
|
||||
MessageId from_message_id_;
|
||||
MessageSearchFilter filter_;
|
||||
int64 random_id_;
|
||||
|
||||
public:
|
||||
explicit GetSearchResultCalendarQuery(Promise<Unit> &&promise) : promise_(std::move(promise)) {
|
||||
explicit GetSearchResultCalendarQuery(Promise<td_api::object_ptr<td_api::messageCalendar>> &&promise)
|
||||
: promise_(std::move(promise)) {
|
||||
}
|
||||
|
||||
void send(DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id, MessageId from_message_id,
|
||||
MessageSearchFilter filter, int64 random_id) {
|
||||
MessageSearchFilter filter) {
|
||||
auto input_peer = td_->dialog_manager_->get_input_peer(dialog_id, AccessRights::Read);
|
||||
CHECK(input_peer != nullptr);
|
||||
|
||||
@ -1715,7 +1715,6 @@ class GetSearchResultCalendarQuery final : public Td::ResultHandler {
|
||||
saved_messages_topic_id_ = saved_messages_topic_id;
|
||||
from_message_id_ = from_message_id;
|
||||
filter_ = filter;
|
||||
random_id_ = random_id;
|
||||
|
||||
int32 flags = 0;
|
||||
telegram_api::object_ptr<telegram_api::InputPeer> saved_input_peer;
|
||||
@ -1751,15 +1750,15 @@ class GetSearchResultCalendarQuery final : public Td::ResultHandler {
|
||||
dialog_id_, std::move(info),
|
||||
PromiseCreator::lambda([actor_id = td_->messages_manager_actor_.get(), dialog_id = dialog_id_,
|
||||
saved_messages_topic_id = saved_messages_topic_id_, from_message_id = from_message_id_,
|
||||
filter = filter_, random_id = random_id_, periods = std::move(result->periods_),
|
||||
filter = filter_, periods = std::move(result->periods_),
|
||||
promise = std::move(promise_)](Result<MessagesInfo> &&result) mutable {
|
||||
if (result.is_error()) {
|
||||
promise.set_error(result.move_as_error());
|
||||
} else {
|
||||
auto info = result.move_as_ok();
|
||||
send_closure(actor_id, &MessagesManager::on_get_message_search_result_calendar, dialog_id,
|
||||
saved_messages_topic_id, from_message_id, filter, random_id, info.total_count,
|
||||
std::move(info.messages), std::move(periods), std::move(promise));
|
||||
saved_messages_topic_id, from_message_id, filter, info.total_count, std::move(info.messages),
|
||||
std::move(periods), std::move(promise));
|
||||
}
|
||||
}),
|
||||
"GetSearchResultCalendarQuery");
|
||||
@ -1767,7 +1766,6 @@ class GetSearchResultCalendarQuery final : public Td::ResultHandler {
|
||||
|
||||
void on_error(Status status) final {
|
||||
td_->dialog_manager_->on_get_dialog_error(dialog_id_, status, "GetSearchResultCalendarQuery");
|
||||
td_->messages_manager_->on_failed_get_message_search_result_calendar(random_id_);
|
||||
promise_.set_error(std::move(status));
|
||||
}
|
||||
};
|
||||
@ -9034,14 +9032,11 @@ void MessagesManager::on_failed_public_dialogs_search(const string &query, Statu
|
||||
|
||||
void MessagesManager::on_get_message_search_result_calendar(
|
||||
DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id, MessageId from_message_id,
|
||||
MessageSearchFilter filter, int64 random_id, int32 total_count,
|
||||
vector<tl_object_ptr<telegram_api::Message>> &&messages,
|
||||
vector<tl_object_ptr<telegram_api::searchResultsCalendarPeriod>> &&periods, Promise<Unit> &&promise) {
|
||||
MessageSearchFilter filter, int32 total_count, vector<tl_object_ptr<telegram_api::Message>> &&messages,
|
||||
vector<tl_object_ptr<telegram_api::searchResultsCalendarPeriod>> &&periods,
|
||||
Promise<td_api::object_ptr<td_api::messageCalendar>> &&promise) {
|
||||
TRY_STATUS_PROMISE(promise, G()->close_status());
|
||||
|
||||
auto it = found_dialog_message_calendars_.find(random_id);
|
||||
CHECK(it != found_dialog_message_calendars_.end());
|
||||
|
||||
int32 received_message_count = 0;
|
||||
for (auto &message : messages) {
|
||||
auto new_message_full_id = on_get_message(std::move(message), false, dialog_id.get_type() == DialogType::Channel,
|
||||
@ -9090,14 +9085,7 @@ void MessagesManager::on_get_message_search_result_calendar(
|
||||
days.push_back(td_api::make_object<td_api::messageCalendarDay>(
|
||||
period->count_, get_message_object(dialog_id, m, "on_get_message_search_result_calendar")));
|
||||
}
|
||||
it->second = td_api::make_object<td_api::messageCalendar>(total_count, std::move(days));
|
||||
promise.set_value(Unit());
|
||||
}
|
||||
|
||||
void MessagesManager::on_failed_get_message_search_result_calendar(int64 random_id) {
|
||||
auto it = found_dialog_message_calendars_.find(random_id);
|
||||
CHECK(it != found_dialog_message_calendars_.end());
|
||||
found_dialog_message_calendars_.erase(it);
|
||||
promise.set_value(td_api::make_object<td_api::messageCalendar>(total_count, std::move(days)));
|
||||
}
|
||||
|
||||
void MessagesManager::on_get_dialog_messages_search_result(
|
||||
@ -20184,20 +20172,9 @@ std::pair<DialogId, vector<MessageId>> MessagesManager::get_message_thread_histo
|
||||
return {};
|
||||
}
|
||||
|
||||
td_api::object_ptr<td_api::messageCalendar> MessagesManager::get_dialog_message_calendar(
|
||||
DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id, MessageId from_message_id,
|
||||
MessageSearchFilter filter, int64 &random_id, bool use_db, Promise<Unit> &&promise) {
|
||||
if (random_id != 0) {
|
||||
// request has already been sent before
|
||||
auto it = found_dialog_message_calendars_.find(random_id);
|
||||
if (it != found_dialog_message_calendars_.end()) {
|
||||
auto result = std::move(it->second);
|
||||
found_dialog_message_calendars_.erase(it);
|
||||
promise.set_value(Unit());
|
||||
return result;
|
||||
}
|
||||
random_id = 0;
|
||||
}
|
||||
void MessagesManager::get_dialog_message_calendar(DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id,
|
||||
MessageId from_message_id, MessageSearchFilter filter,
|
||||
Promise<td_api::object_ptr<td_api::messageCalendar>> &&promise) {
|
||||
LOG(INFO) << "Get message calendar in " << dialog_id << " with " << saved_messages_topic_id << " filtered by "
|
||||
<< filter << " from " << from_message_id;
|
||||
|
||||
@ -20206,45 +20183,25 @@ td_api::object_ptr<td_api::messageCalendar> MessagesManager::get_dialog_message_
|
||||
}
|
||||
|
||||
if (!from_message_id.is_valid() && from_message_id != MessageId()) {
|
||||
promise.set_error(Status::Error(400, "Parameter from_message_id must be identifier of a chat message or 0"));
|
||||
return {};
|
||||
return promise.set_error(Status::Error(400, "Parameter from_message_id must be identifier of a chat message or 0"));
|
||||
}
|
||||
from_message_id = from_message_id.get_next_server_message_id();
|
||||
|
||||
const Dialog *d = get_dialog_force(dialog_id, "get_dialog_message_calendar");
|
||||
if (d == nullptr) {
|
||||
promise.set_error(Status::Error(400, "Chat not found"));
|
||||
return {};
|
||||
}
|
||||
if (!td_->dialog_manager_->have_input_peer(dialog_id, true, AccessRights::Read)) {
|
||||
promise.set_error(Status::Error(400, "Can't access the chat"));
|
||||
return {};
|
||||
}
|
||||
{
|
||||
auto status = saved_messages_topic_id.is_valid_in(td_, dialog_id);
|
||||
if (status.is_error()) {
|
||||
promise.set_error(std::move(status));
|
||||
return {};
|
||||
}
|
||||
}
|
||||
TRY_RESULT_PROMISE(promise, d,
|
||||
check_dialog_access(dialog_id, true, AccessRights::Read, "get_dialog_message_calendar"));
|
||||
TRY_STATUS_PROMISE(promise, saved_messages_topic_id.is_valid_in(td_, dialog_id));
|
||||
|
||||
CHECK(filter != MessageSearchFilter::Call && filter != MessageSearchFilter::MissedCall);
|
||||
if (filter == MessageSearchFilter::Empty || filter == MessageSearchFilter::Mention ||
|
||||
filter == MessageSearchFilter::UnreadMention || filter == MessageSearchFilter::UnreadReaction) {
|
||||
if (filter != MessageSearchFilter::Empty && saved_messages_topic_id.is_valid()) {
|
||||
return td_api::make_object<td_api::messageCalendar>();
|
||||
return promise.set_value(td_api::make_object<td_api::messageCalendar>());
|
||||
}
|
||||
promise.set_error(Status::Error(400, "The filter is not supported"));
|
||||
return {};
|
||||
return promise.set_error(Status::Error(400, "The filter is not supported"));
|
||||
}
|
||||
|
||||
do {
|
||||
random_id = Random::secure_int64();
|
||||
} while (random_id == 0 || found_dialog_message_calendars_.count(random_id) > 0);
|
||||
found_dialog_message_calendars_[random_id]; // reserve place for result
|
||||
|
||||
// Trying to use database
|
||||
if (use_db && G()->use_message_database() && !saved_messages_topic_id.is_valid()) {
|
||||
if (G()->use_message_database() && !saved_messages_topic_id.is_valid()) {
|
||||
MessageId first_db_message_id = get_first_database_message_id_by_index(d, filter);
|
||||
int32 message_count = d->message_count_by_index[message_search_filter_index(filter)];
|
||||
auto fixed_from_message_id = from_message_id;
|
||||
@ -20256,11 +20213,10 @@ td_api::object_ptr<td_api::messageCalendar> MessagesManager::get_dialog_message_
|
||||
if (first_db_message_id < fixed_from_message_id && message_count != -1) {
|
||||
LOG(INFO) << "Get message calendar from database in " << dialog_id << " from " << fixed_from_message_id;
|
||||
auto new_promise =
|
||||
PromiseCreator::lambda([random_id, dialog_id, fixed_from_message_id, first_db_message_id, filter,
|
||||
PromiseCreator::lambda([dialog_id, fixed_from_message_id, first_db_message_id, filter,
|
||||
promise = std::move(promise)](Result<MessageDbCalendar> r_calendar) mutable {
|
||||
send_closure(G()->messages_manager(), &MessagesManager::on_get_message_calendar_from_database, random_id,
|
||||
dialog_id, fixed_from_message_id, first_db_message_id, filter, std::move(r_calendar),
|
||||
std::move(promise));
|
||||
send_closure(G()->messages_manager(), &MessagesManager::on_get_message_calendar_from_database, dialog_id,
|
||||
fixed_from_message_id, first_db_message_id, filter, std::move(r_calendar), std::move(promise));
|
||||
});
|
||||
MessageDbDialogCalendarQuery db_query;
|
||||
db_query.dialog_id = dialog_id;
|
||||
@ -20268,47 +20224,48 @@ td_api::object_ptr<td_api::messageCalendar> MessagesManager::get_dialog_message_
|
||||
db_query.from_message_id = fixed_from_message_id;
|
||||
db_query.tz_offset = static_cast<int32>(td_->option_manager_->get_option_integer("utc_time_offset"));
|
||||
G()->td_db()->get_message_db_async()->get_dialog_message_calendar(db_query, std::move(new_promise));
|
||||
return {};
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (filter == MessageSearchFilter::FailedToSend) {
|
||||
found_dialog_message_calendars_.erase(random_id);
|
||||
promise.set_value(Unit());
|
||||
return td_api::make_object<td_api::messageCalendar>();
|
||||
return promise.set_value(td_api::make_object<td_api::messageCalendar>());
|
||||
}
|
||||
|
||||
switch (dialog_id.get_type()) {
|
||||
case DialogType::None:
|
||||
case DialogType::User:
|
||||
case DialogType::Chat:
|
||||
case DialogType::Channel:
|
||||
td_->create_handler<GetSearchResultCalendarQuery>(std::move(promise))
|
||||
->send(dialog_id, saved_messages_topic_id, from_message_id, filter, random_id);
|
||||
break;
|
||||
return get_message_calendar_from_server(dialog_id, saved_messages_topic_id, from_message_id, filter,
|
||||
std::move(promise));
|
||||
case DialogType::SecretChat:
|
||||
promise.set_value(Unit());
|
||||
break;
|
||||
return promise.set_value(td_api::make_object<td_api::messageCalendar>());
|
||||
case DialogType::None:
|
||||
default:
|
||||
UNREACHABLE();
|
||||
promise.set_error(Status::Error(500, "Message search is not supported"));
|
||||
return promise.set_error(Status::Error(500, "Message search is not supported"));
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
void MessagesManager::on_get_message_calendar_from_database(int64 random_id, DialogId dialog_id,
|
||||
MessageId from_message_id, MessageId first_db_message_id,
|
||||
MessageSearchFilter filter,
|
||||
Result<MessageDbCalendar> r_calendar,
|
||||
Promise<Unit> promise) {
|
||||
void MessagesManager::get_message_calendar_from_server(DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id,
|
||||
MessageId from_message_id, MessageSearchFilter filter,
|
||||
Promise<td_api::object_ptr<td_api::messageCalendar>> &&promise) {
|
||||
td_->create_handler<GetSearchResultCalendarQuery>(std::move(promise))
|
||||
->send(dialog_id, saved_messages_topic_id, from_message_id, filter);
|
||||
}
|
||||
|
||||
void MessagesManager::on_get_message_calendar_from_database(
|
||||
DialogId dialog_id, MessageId from_message_id, MessageId first_db_message_id, MessageSearchFilter filter,
|
||||
Result<MessageDbCalendar> r_calendar, Promise<td_api::object_ptr<td_api::messageCalendar>> promise) {
|
||||
TRY_STATUS_PROMISE(promise, G()->close_status());
|
||||
|
||||
if (r_calendar.is_error()) {
|
||||
LOG(ERROR) << "Failed to get message calendar from the database: " << r_calendar.error();
|
||||
if (first_db_message_id != MessageId::min() && dialog_id.get_type() != DialogType::SecretChat &&
|
||||
filter != MessageSearchFilter::FailedToSend) {
|
||||
found_dialog_message_calendars_.erase(random_id);
|
||||
return get_message_calendar_from_server(dialog_id, SavedMessagesTopicId(), from_message_id, filter,
|
||||
std::move(promise));
|
||||
}
|
||||
return promise.set_value(Unit());
|
||||
return promise.set_value(td_api::make_object<td_api::messageCalendar>());
|
||||
}
|
||||
CHECK(!from_message_id.is_scheduled());
|
||||
CHECK(!first_db_message_id.is_scheduled());
|
||||
@ -20318,10 +20275,6 @@ void MessagesManager::on_get_message_calendar_from_database(int64 random_id, Dia
|
||||
Dialog *d = get_dialog(dialog_id);
|
||||
CHECK(d != nullptr);
|
||||
|
||||
auto it = found_dialog_message_calendars_.find(random_id);
|
||||
CHECK(it != found_dialog_message_calendars_.end());
|
||||
CHECK(it->second == nullptr);
|
||||
|
||||
vector<std::pair<MessageId, int32>> periods;
|
||||
periods.reserve(calendar.messages.size());
|
||||
for (size_t i = 0; i < calendar.messages.size(); i++) {
|
||||
@ -20334,7 +20287,8 @@ void MessagesManager::on_get_message_calendar_from_database(int64 random_id, Dia
|
||||
|
||||
if (periods.empty() && first_db_message_id != MessageId::min() && dialog_id.get_type() != DialogType::SecretChat) {
|
||||
LOG(INFO) << "No messages found in database";
|
||||
found_dialog_message_calendars_.erase(it);
|
||||
return get_message_calendar_from_server(dialog_id, SavedMessagesTopicId(), from_message_id, filter,
|
||||
std::move(promise));
|
||||
} else {
|
||||
auto total_count = d->message_count_by_index[message_search_filter_index(filter)];
|
||||
vector<td_api::object_ptr<td_api::messageCalendarDay>> days;
|
||||
@ -20344,9 +20298,8 @@ void MessagesManager::on_get_message_calendar_from_database(int64 random_id, Dia
|
||||
days.push_back(td_api::make_object<td_api::messageCalendarDay>(
|
||||
period.second, get_message_object(dialog_id, m, "on_get_message_calendar_from_database")));
|
||||
}
|
||||
it->second = td_api::make_object<td_api::messageCalendar>(total_count, std::move(days));
|
||||
return promise.set_value(td_api::make_object<td_api::messageCalendar>(total_count, std::move(days)));
|
||||
}
|
||||
promise.set_value(Unit());
|
||||
}
|
||||
|
||||
MessagesManager::FoundDialogMessages MessagesManager::search_dialog_messages(
|
||||
|
@ -177,11 +177,10 @@ class MessagesManager final : public Actor {
|
||||
void on_failed_public_dialogs_search(const string &query, Status &&error);
|
||||
|
||||
void on_get_message_search_result_calendar(DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id,
|
||||
MessageId from_message_id, MessageSearchFilter filter, int64 random_id,
|
||||
int32 total_count, vector<tl_object_ptr<telegram_api::Message>> &&messages,
|
||||
MessageId from_message_id, MessageSearchFilter filter, int32 total_count,
|
||||
vector<tl_object_ptr<telegram_api::Message>> &&messages,
|
||||
vector<tl_object_ptr<telegram_api::searchResultsCalendarPeriod>> &&periods,
|
||||
Promise<Unit> &&promise);
|
||||
void on_failed_get_message_search_result_calendar(int64 random_id);
|
||||
Promise<td_api::object_ptr<td_api::messageCalendar>> &&promise);
|
||||
|
||||
void on_get_dialog_messages_search_result(DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id,
|
||||
const string &query, DialogId sender_dialog_id, MessageId from_message_id,
|
||||
@ -691,11 +690,9 @@ class MessagesManager final : public Actor {
|
||||
int32 limit, int64 &random_id,
|
||||
Promise<Unit> &&promise);
|
||||
|
||||
td_api::object_ptr<td_api::messageCalendar> get_dialog_message_calendar(DialogId dialog_id,
|
||||
SavedMessagesTopicId saved_messages_topic_id,
|
||||
MessageId from_message_id,
|
||||
MessageSearchFilter filter, int64 &random_id,
|
||||
bool use_db, Promise<Unit> &&promise);
|
||||
void get_dialog_message_calendar(DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id,
|
||||
MessageId from_message_id, MessageSearchFilter filter,
|
||||
Promise<td_api::object_ptr<td_api::messageCalendar>> &&promise);
|
||||
|
||||
struct FoundDialogMessages {
|
||||
vector<MessageId> message_ids;
|
||||
@ -2822,9 +2819,14 @@ class MessagesManager final : public Actor {
|
||||
|
||||
static MessageId get_first_database_message_id_by_index(const Dialog *d, MessageSearchFilter filter);
|
||||
|
||||
void on_get_message_calendar_from_database(int64 random_id, DialogId dialog_id, MessageId from_message_id,
|
||||
void get_message_calendar_from_server(DialogId dialog_id, SavedMessagesTopicId saved_messages_topic_id,
|
||||
MessageId from_message_id, MessageSearchFilter filter,
|
||||
Promise<td_api::object_ptr<td_api::messageCalendar>> &&promise);
|
||||
|
||||
void on_get_message_calendar_from_database(DialogId dialog_id, MessageId from_message_id,
|
||||
MessageId first_db_message_id, MessageSearchFilter filter,
|
||||
Result<MessageDbCalendar> r_calendar, Promise<Unit> promise);
|
||||
Result<MessageDbCalendar> r_calendar,
|
||||
Promise<td_api::object_ptr<td_api::messageCalendar>> promise);
|
||||
|
||||
void on_search_dialog_message_db_result(int64 random_id, DialogId dialog_id, MessageId from_message_id,
|
||||
MessageId first_db_message_id, MessageSearchFilter filter, int32 offset,
|
||||
@ -3247,7 +3249,6 @@ class MessagesManager final : public Actor {
|
||||
FlatHashMap<string, vector<DialogId>> found_public_dialogs_; // TODO time bound cache
|
||||
FlatHashMap<string, vector<DialogId>> found_on_server_dialogs_; // TODO time bound cache
|
||||
|
||||
FlatHashMap<int64, td_api::object_ptr<td_api::messageCalendar>> found_dialog_message_calendars_;
|
||||
FlatHashMap<int64, FoundDialogMessages> found_dialog_messages_; // random_id -> FoundDialogMessages
|
||||
FlatHashMap<int64, DialogId> found_dialog_messages_dialog_id_; // random_id -> dialog_id
|
||||
FlatHashMap<int64, FoundMessages> found_call_messages_; // random_id -> FoundMessages
|
||||
|
@ -1382,39 +1382,6 @@ class GetMessageThreadHistoryRequest final : public RequestActor<> {
|
||||
}
|
||||
};
|
||||
|
||||
class GetChatMessageCalendarRequest final : public RequestActor<> {
|
||||
DialogId dialog_id_;
|
||||
SavedMessagesTopicId saved_messages_topic_id_;
|
||||
MessageId from_message_id_;
|
||||
MessageSearchFilter filter_;
|
||||
int64 random_id_;
|
||||
|
||||
td_api::object_ptr<td_api::messageCalendar> calendar_;
|
||||
|
||||
void do_run(Promise<Unit> &&promise) final {
|
||||
calendar_ =
|
||||
td_->messages_manager_->get_dialog_message_calendar(dialog_id_, saved_messages_topic_id_, from_message_id_,
|
||||
filter_, random_id_, get_tries() == 3, std::move(promise));
|
||||
}
|
||||
|
||||
void do_send_result() final {
|
||||
send_result(std::move(calendar_));
|
||||
}
|
||||
|
||||
public:
|
||||
GetChatMessageCalendarRequest(ActorShared<Td> td, uint64 request_id, int64 dialog_id,
|
||||
SavedMessagesTopicId saved_messages_topic_id, int64 from_message_id,
|
||||
tl_object_ptr<td_api::SearchMessagesFilter> filter)
|
||||
: RequestActor(std::move(td), request_id)
|
||||
, dialog_id_(dialog_id)
|
||||
, saved_messages_topic_id_(saved_messages_topic_id)
|
||||
, from_message_id_(from_message_id)
|
||||
, filter_(get_message_search_filter(filter))
|
||||
, random_id_(0) {
|
||||
set_tries(3);
|
||||
}
|
||||
};
|
||||
|
||||
class SearchChatMessagesRequest final : public RequestActor<> {
|
||||
DialogId dialog_id_;
|
||||
string query_;
|
||||
@ -5308,11 +5275,12 @@ void Td::on_request(uint64 id, const td_api::getMessageThreadHistory &request) {
|
||||
request.offset_, request.limit_);
|
||||
}
|
||||
|
||||
void Td::on_request(uint64 id, td_api::getChatMessageCalendar &request) {
|
||||
void Td::on_request(uint64 id, const td_api::getChatMessageCalendar &request) {
|
||||
CHECK_IS_USER();
|
||||
CREATE_REQUEST(GetChatMessageCalendarRequest, request.chat_id_,
|
||||
saved_messages_manager_->get_topic_id(request.saved_messages_topic_id_), request.from_message_id_,
|
||||
std::move(request.filter_));
|
||||
CREATE_REQUEST_PROMISE();
|
||||
messages_manager_->get_dialog_message_calendar(
|
||||
DialogId(request.chat_id_), saved_messages_manager_->get_topic_id(request.saved_messages_topic_id_),
|
||||
MessageId(request.from_message_id_), get_message_search_filter(request.filter_), std::move(promise));
|
||||
}
|
||||
|
||||
void Td::on_request(uint64 id, td_api::searchChatMessages &request) {
|
||||
|
@ -784,7 +784,7 @@ class Td final : public Actor {
|
||||
|
||||
void on_request(uint64 id, const td_api::getMessageThreadHistory &request);
|
||||
|
||||
void on_request(uint64 id, td_api::getChatMessageCalendar &request);
|
||||
void on_request(uint64 id, const td_api::getChatMessageCalendar &request);
|
||||
|
||||
void on_request(uint64 id, td_api::searchChatMessages &request);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user