Skip to content

Commit fd8d15e

Browse files
committed
Add td_api::searchMessagesFilterUnreadReaction.
1 parent e740647 commit fd8d15e

File tree

4 files changed

+22
-5
lines changed

4 files changed

+22
-5
lines changed

td/generate/scheme/td_api.tl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2117,6 +2117,9 @@ searchMessagesFilterMention = SearchMessagesFilter;
21172117
//@description Returns only messages with unread mentions of the current user, or messages that are replies to their messages. When using this filter the results can't be additionally filtered by a query, a message thread or by the sending user
21182118
searchMessagesFilterUnreadMention = SearchMessagesFilter;
21192119

2120+
//@description Returns only messages with unread reactions for the current user. When using this filter the results can't be additionally filtered by a query, a message thread or by the sending user
2121+
searchMessagesFilterUnreadReaction = SearchMessagesFilter;
2122+
21202123
//@description Returns only failed to send messages. This filter can be used only if the message database is used
21212124
searchMessagesFilterFailedToSend = SearchMessagesFilter;
21222125

@@ -4373,7 +4376,7 @@ searchChatMessages chat_id:int53 query:string sender_id:MessageSender from_messa
43734376
//@offset_chat_id The chat identifier of the last found message, or 0 for the first request
43744377
//@offset_message_id The message identifier of the last found message, or 0 for the first request
43754378
//@limit The maximum number of messages to be returned; up to 100. For optimal performance, the number of returned messages is chosen by TDLib and can be smaller than the specified limit
4376-
//@filter Additional filter for messages to search; pass null to search for all messages. Filters searchMessagesFilterMention, searchMessagesFilterUnreadMention, searchMessagesFilterFailedToSend and searchMessagesFilterPinned are unsupported in this function
4379+
//@filter Additional filter for messages to search; pass null to search for all messages. Filters searchMessagesFilterMention, searchMessagesFilterUnreadMention, searchMessagesFilterUnreadReaction, searchMessagesFilterFailedToSend, and searchMessagesFilterPinned are unsupported in this function
43774380
//@min_date If not 0, the minimum date of the messages to return
43784381
//@max_date If not 0, the maximum date of the messages to return
43794382
searchMessages chat_list:ChatList query:string offset_date:int32 offset_chat_id:int53 offset_message_id:int53 limit:int32 filter:SearchMessagesFilter min_date:int32 max_date:int32 = Messages;
@@ -4406,14 +4409,14 @@ getChatMessageByDate chat_id:int53 date:int32 = Message;
44064409
//@description Returns sparse positions of messages of the specified type in the chat to be used for shared media scroll implementation. Returns the results in reverse chronological order (i.e., in order of decreasing message_id).
44074410
//-Cannot be used in secret chats or with searchMessagesFilterFailedToSend filter without an enabled message database
44084411
//@chat_id Identifier of the chat in which to return information about message positions
4409-
//@filter Filter for message content. Filters searchMessagesFilterEmpty, searchMessagesFilterMention and searchMessagesFilterUnreadMention are unsupported in this function
4412+
//@filter Filter for message content. Filters searchMessagesFilterEmpty, searchMessagesFilterMention, searchMessagesFilterUnreadMention, and searchMessagesFilterUnreadReaction are unsupported in this function
44104413
//@from_message_id The message identifier from which to return information about message positions
44114414
//@limit The expected number of message positions to be returned; 50-2000. A smaller number of positions can be returned, if there are not enough appropriate messages
44124415
getChatSparseMessagePositions chat_id:int53 filter:SearchMessagesFilter from_message_id:int53 limit:int32 = MessagePositions;
44134416

44144417
//@description Returns information about the next messages of the specified type in the chat split by days. Returns the results in reverse chronological order. Can return partial result for the last returned day. Behavior of this method depends on the value of the option "utc_time_offset"
44154418
//@chat_id Identifier of the chat in which to return information about messages
4416-
//@filter Filter for message content. Filters searchMessagesFilterEmpty, searchMessagesFilterMention and searchMessagesFilterUnreadMention are unsupported in this function
4419+
//@filter Filter for message content. Filters searchMessagesFilterEmpty, searchMessagesFilterMention, searchMessagesFilterUnreadMention, and searchMessagesFilterUnreadReaction are unsupported in this function
44174420
//@from_message_id The message identifier from which to return information about messages; use 0 to get results from the last message
44184421
getChatMessageCalendar chat_id:int53 filter:SearchMessagesFilter from_message_id:int53 = MessageCalendar;
44194422

td/telegram/MessageSearchFilter.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ MessageSearchFilter get_message_search_filter(const tl_object_ptr<td_api::Search
9191
return MessageSearchFilter::FailedToSend;
9292
case td_api::searchMessagesFilterPinned::ID:
9393
return MessageSearchFilter::Pinned;
94+
case td_api::searchMessagesFilterUnreadReaction::ID:
95+
return MessageSearchFilter::UnreadReaction;
9496
default:
9597
UNREACHABLE();
9698
return MessageSearchFilter::Empty;

td/telegram/MessagesManager.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,10 @@ class SearchMessagesQuery final : public Td::ResultHandler {
23562356
send_query(G()->net_query_creator().create(
23572357
telegram_api::messages_getUnreadMentions(std::move(input_peer), from_message_id.get_server_message_id().get(),
23582358
offset, limit, std::numeric_limits<int32>::max(), 0)));
2359+
} else if (filter == MessageSearchFilter::UnreadReaction) {
2360+
send_query(G()->net_query_creator().create(telegram_api::messages_getUnreadReactions(
2361+
std::move(input_peer), from_message_id.get_server_message_id().get(), offset, limit,
2362+
std::numeric_limits<int32>::max(), 0)));
23592363
} else if (top_thread_message_id.is_valid() && query.empty() && !sender_dialog_id.is_valid() &&
23602364
filter == MessageSearchFilter::Empty) {
23612365
handle_errors_ = dialog_id.get_type() != DialogType::Channel ||
@@ -2388,6 +2392,9 @@ class SearchMessagesQuery final : public Td::ResultHandler {
23882392
static_assert(std::is_same<telegram_api::messages_getUnreadMentions::ReturnType,
23892393
telegram_api::messages_search::ReturnType>::value,
23902394
"");
2395+
static_assert(std::is_same<telegram_api::messages_getUnreadReactions::ReturnType,
2396+
telegram_api::messages_search::ReturnType>::value,
2397+
"");
23912398
static_assert(
23922399
std::is_same<telegram_api::messages_getReplies::ReturnType, telegram_api::messages_search::ReturnType>::value,
23932400
"");
@@ -22899,7 +22906,8 @@ std::pair<int32, vector<FullMessageId>> MessagesManager::search_messages(
2289922906

2290022907
CHECK(filter != MessageSearchFilter::Call && filter != MessageSearchFilter::MissedCall);
2290122908
if (filter == MessageSearchFilter::Mention || filter == MessageSearchFilter::UnreadMention ||
22902-
filter == MessageSearchFilter::FailedToSend || filter == MessageSearchFilter::Pinned) {
22909+
filter == MessageSearchFilter::UnreadReaction || filter == MessageSearchFilter::FailedToSend ||
22910+
filter == MessageSearchFilter::Pinned) {
2290322911
promise.set_error(Status::Error(400, "The filter is not supported"));
2290422912
return {};
2290522913
}
@@ -23157,7 +23165,8 @@ void MessagesManager::get_dialog_sparse_message_positions(
2315723165

2315823166
CHECK(filter != MessageSearchFilter::Call && filter != MessageSearchFilter::MissedCall);
2315923167
if (filter == MessageSearchFilter::Empty || filter == MessageSearchFilter::Mention ||
23160-
filter == MessageSearchFilter::UnreadMention || filter == MessageSearchFilter::Pinned) {
23168+
filter == MessageSearchFilter::UnreadMention || filter == MessageSearchFilter::UnreadReaction ||
23169+
filter == MessageSearchFilter::Pinned) {
2316123170
return promise.set_error(Status::Error(400, "The filter is not supported"));
2316223171
}
2316323172

td/telegram/cli.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,6 +1218,9 @@ class CliClient final : public Actor {
12181218
if (filter == "um" || filter == "umention") {
12191219
return td_api::make_object<td_api::searchMessagesFilterUnreadMention>();
12201220
}
1221+
if (filter == "ur" || filter == "ureaction") {
1222+
return td_api::make_object<td_api::searchMessagesFilterUnreadReaction>();
1223+
}
12211224
if (filter == "f" || filter == "failed") {
12221225
return td_api::make_object<td_api::searchMessagesFilterFailedToSend>();
12231226
}

0 commit comments

Comments
 (0)