Skip to main content

get_chat_demo/
get-chat-demo.rs

1//! Демонстрация получения информации о групповом чате по `chat_id`.
2//!
3//! Запуск:
4//! ```bash
5//! export MAXBOT_TOKEN="ваш_токен"
6//! export CHAT_ID=-1234567890
7//! cargo run --example get-chat-demo
8//! ```
9
10use maxbot::MaxClient;
11use std::env;
12
13#[tokio::main]
14async fn main() -> Result<(), Box<dyn std::error::Error>> {
15    let token = env::var("MAXBOT_TOKEN").expect("Missing MAXBOT_TOKEN");
16    let chat_id = env::var("CHAT_ID")
17        .expect("Missing CHAT_ID")
18        .parse::<i64>()?;
19
20    if let Ok(proxy_url) = env::var("MAXBOT_PROXY") {
21        maxbot::set_global_base_url(proxy_url);
22    }
23
24    let client = MaxClient::new(token);
25    let chat = client.get_chat(chat_id).await?;
26
27    println!("Информация о чате {}:", chat_id);
28    println!("  ID: {}", chat.chat_id);
29    println!("  Тип: {}", chat.r#type.as_str());
30    println!("  Статус: {}", chat.status.as_str());
31    if let Some(title) = &chat.title {
32        println!("  Название: {}", title);
33    }
34    if let Some(icon) = &chat.icon {
35        println!("  Иконка: {}", icon.url);
36    }
37    println!("  Последнее событие: {}", chat.last_event_time_formatted());
38    println!("  Участников: {}", chat.participants_count);
39    if let Some(owner_id) = chat.owner_id {
40        println!("  Владелец ID: {}", owner_id);
41    }
42    println!("  Публичный: {}", chat.is_public);
43    if let Some(link) = &chat.link {
44        println!("  Ссылка: {}", link);
45    }
46    if let Some(desc) = &chat.description {
47        println!("  Описание: {}", desc);
48    }
49    if let Some(dialog_user) = &chat.dialog_with_user {
50        println!(
51            "  Диалог с пользователем: {} {} (ID: {})",
52            dialog_user.first_name,
53            dialog_user.last_name.as_deref().unwrap_or(""),
54            dialog_user.user_id
55        );
56    }
57    if let Some(pinned) = &chat.pinned_message {
58        println!("  Закреплённое сообщение: {:?}", pinned);
59    }
60
61    Ok(())
62}