#![allow(unused)]
fn main() {
// Fetch up to N dialogs (returns the most recent first)
let dialogs = client.get_dialogs(50).await?;
for d in &dialogs {
println!("{}: {} unread: top msg: {}",
d.title(), d.unread_count(), d.top_message());
}
}
#![allow(unused)]
fn main() {
let mut iter = client.iter_dialogs();
// Total count (available after first page is fetched)
if let Some(total) = iter.total() {
println!("Total dialogs: {total}");
}
while let Some(dialog) = iter.next(&client).await? {
println!("{}", dialog.title());
}
}
#![allow(unused)]
fn main() {
let mut iter = client.iter_messages(peer.clone());
// Total count of messages in this chat
if let Some(total) = iter.total() {
println!("Total messages: {total}");
}
while let Some(msg) = iter.next(&client).await? {
println!("[{}] {}", msg.id, msg.message);
}
}
Method
Description
client.iter_messages(peer)
Create iterator (newest first)
iter.total()
Option<i32>: total message count after first fetch
#![allow(unused)]
fn main() {
// Latest N messages from a peer
let messages = client.get_messages(peer.clone(), 20).await?;
// Specific message IDs
let messages = client.get_messages_by_id(peer.clone(), &[100, 101, 102]).await?;
// Returns Vec<Option<tl::enums::Message>>: None if not found
// Pinned message
let pinned = client.get_pinned_message(peer.clone()).await?;
// The message a given message replies to
let parent = client.get_reply_to_message(peer.clone(), msg_id).await?;
}
#![allow(unused)]
fn main() {
// Mark all messages as read
client.mark_as_read(peer.clone()).await?;
// Clear @mention badges
client.clear_mentions(peer.clone()).await?;
// Leave and remove from dialog list
client.delete_dialog(peer.clone()).await?;
// Join a public group/channel
client.join_chat("@somegroup").await?;
// Accept a private invite link
client.accept_invite_link("https://t.me/joinchat/AbCdEfG").await?;
// Parse invite hash from any link format
let hash = Client::parse_invite_hash("https://t.me/+AbCdEfG12345");
}