add find messages

This commit is contained in:
Mikhail Kilin
2026-01-27 12:09:05 +03:00
parent 81dc5b9007
commit dc76e01f3c
4 changed files with 318 additions and 0 deletions

View File

@@ -1165,6 +1165,38 @@ impl TdClient {
}
}
/// Поиск сообщений в чате по тексту
pub async fn search_messages(&mut self, chat_id: i64, query: &str) -> Result<Vec<MessageInfo>, String> {
if query.trim().is_empty() {
return Ok(Vec::new());
}
let result = functions::search_chat_messages(
chat_id,
query.to_string(),
None, // sender_id
0, // from_message_id
0, // offset
50, // limit
None, // filter (no filter = search by text)
0, // message_thread_id
0, // saved_messages_topic_id
self.client_id,
)
.await;
match result {
Ok(tdlib_rs::enums::FoundChatMessages::FoundChatMessages(found)) => {
let mut messages: Vec<MessageInfo> = Vec::new();
for m in found.messages {
messages.push(self.convert_message(&m, chat_id));
}
Ok(messages)
}
Err(e) => Err(format!("Ошибка поиска: {:?}", e)),
}
}
/// Загрузка старых сообщений (для скролла вверх)
pub async fn load_older_messages(
&mut self,