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!("Запрашиваем информацию о членстве бота в чате {}...", chat_id);
match client.get_bot_member(chat_id).await {
Ok(member) => {
println!("✅ Информация получена:\n");
println!(" Имя: {} {}",
member.user.first_name,
member.user.last_name.as_deref().unwrap_or("")
);
if let Some(username) = &member.user.username {
println!(" Username: @{}", username);
}
println!(" ID пользователя: {}", member.user.user_id);
println!(" Это бот: {}", member.user.is_bot);
if let Some(last_activity) = member.user.last_activity_time_formatted() {
println!(" Последняя активность: {}", last_activity);
}
if let Some(desc) = &member.description {
println!(" Описание: {}", desc);
}
if let Some(avatar) = &member.avatar_url {
println!(" URL аватара: {}", avatar);
}
if let Some(full_avatar) = &member.full_avatar_url {
println!(" Полный URL аватара: {}", full_avatar);
}
println!(" Последний доступ к чату: {}", member.last_access_time_formatted());
println!(" Владелец чата: {}", member.is_owner);
println!(" Администратор: {}", member.is_admin);
println!(" Присоединился: {}", member.join_time_formatted());
if !member.permissions.is_empty() {
print!(" Права: ");
for (i, perm) in member.permissions.iter().enumerate() {
if i > 0 {
print!(", ");
}
print!("{}", perm.as_str());
}
println!();
} else {
println!(" Права: нет");
}
if let Some(alias) = &member.alias {
println!(" Псевдоним: {}", alias);
}
}
Err(e) => {
println!("❌ Ошибка: {}", e);
if let maxbot::Error::Api { code, message } = &e {
println!(" Код ответа API: {}", code);
println!(" Сообщение: {}", message);
}
}
}
Ok(())
}