maxbot 0.1.13

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

use maxbot::MaxClient;
use std::env;
use std::time::Duration;

const ACTIONS: &[&str] = &[
    "typing_on",
    "sending_photo",
    "sending_video",
    "sending_audio",
    "sending_file",
    "mark_seen",
];

#[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);

    println!("Отправляем последовательно действия бота в чат {}...\n", chat_id);

    for action in ACTIONS {
        print!("Действие: {:15} ", action);
        match client.send_chat_action(chat_id, action).await {
            Ok(()) => println!("✅ успешно"),
            Err(e) => {
                println!("❌ ошибка: {}", e);
                if let maxbot::Error::Api { code, message } = &e {
                    println!("   Код ответа API: {}", code);
                    println!("   Сообщение: {}", message);
                }
            }
        }
        // Задержка 7 секунд, чтобы в интерфейсе можно было заметить смену статуса
        tokio::time::sleep(Duration::from_secs(7)).await;
    }

    println!("\nВсе действия отправлены.");
    Ok(())
}