maxbot 0.2.3

Автоматизация работы с чат-ботами на платформе MAX (max.ru)
Documentation
// examples/pin_message_demo.rs

use maxbot::{MaxClient, SendMessageParamsBuilder};
use std::env;
use std::time::Duration;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let token = env::var("MAXBOT_TOKEN").expect("Missing MAXBOT_TOKEN");
    let chat_id: i64 = env::var("CHAT_ID")
        .expect("Missing CHAT_ID")
        .parse()?;

    if let Ok(proxy_url) = env::var("MAXBOT_PROXY") {
        maxbot::set_global_base_url(proxy_url);
    }

    let client = MaxClient::new(token);

    // 1. Отправляем сообщение
    let builder = SendMessageParamsBuilder::new()
        .text("Это сообщение будет закреплено, а затем откреплено.")
        .chat_id(chat_id);
    let mids = client.send_message_builder(builder).await?;
    let message_mid = mids.first().expect("Не получен MID сообщения");
    println!("📨 Сообщение отправлено, MID = {}", message_mid);

    tokio::time::sleep(Duration::from_secs(1)).await;

    // 2. Закрепляем сообщение
    println!("📌 Закрепляем сообщение...");
    match client.pin_message(chat_id, message_mid).await {
        Ok(()) => println!("✅ Сообщение закреплено."),
        Err(e) => {
            eprintln!("❌ Ошибка при закреплении: {}", e);
            return Err(e.into());
        }
    }

    // Пауза 5 секунд, чтобы можно было увидеть закрепление в интерфейсе
    println!("Ждём 5 секунд...");
    tokio::time::sleep(Duration::from_secs(5)).await;

    // 3. Открепляем сообщение
    println!("📍 Открепляем сообщение...");
    match client.unpin_message(chat_id).await {
        Ok(()) => println!("✅ Сообщение откреплено."),
        Err(e) => {
            eprintln!("❌ Ошибка при откреплении: {}", e);
            return Err(e.into());
        }
    }

    Ok(())
}