use maxbot::MaxClient;
use std::env;
#[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);
match client.get_chat_admins(chat_id).await {
Ok(admins) => {
if admins.is_empty() {
println!("В чате нет администраторов (или бот не имеет прав для просмотра).");
} else {
println!("Найдено администраторов: {}\n", admins.len());
for (i, admin) in admins.iter().enumerate() {
println!("{}. {} {}",
i + 1,
admin.user.first_name,
admin.user.last_name.as_deref().unwrap_or("")
);
if let Some(username) = &admin.user.username {
println!(" Username: @{}", username);
}
println!(" ID: {}", admin.user.user_id);
println!(" Это бот: {}", admin.user.is_bot);
println!(" Владелец чата: {}", admin.is_owner);
println!(" Администратор: {}", admin.is_admin);
println!(" Дата вступления: {}", admin.join_time_formatted());
if !admin.permissions.is_empty() {
print!(" Права: ");
for (j, perm) in admin.permissions.iter().enumerate() {
if j > 0 {
print!(", ");
}
print!("{}", perm.as_str());
}
println!();
}
if let Some(alias) = &admin.alias {
println!(" Псевдоним: {}", alias);
}
if let Some(last_activity) = admin.user.last_activity_time_formatted() {
println!(" Последняя активность: {}", last_activity);
}
println!();
}
}
}
Err(e) => {
eprintln!("❌ Ошибка при получении администраторов: {}", e);
if let maxbot::Error::Api { code, message } = &e {
eprintln!(" Код ответа API: {}", code);
eprintln!(" Сообщение: {}", message);
}
}
}
Ok(())
}