Add friend request command

This commit is contained in:
2025-08-14 19:04:57 -03:00
parent fe53f2e5c2
commit 8e0c591b21
5 changed files with 151 additions and 53 deletions
+1 -49
View File
@@ -2,16 +2,14 @@ use std::sync::Arc;
use async_trait::async_trait;
use twilight_model::{gateway::payload::incoming::MessageCreate, id::Id};
use twilight_validate::request::webhook_username;
use crate::{
database::models::{Call, Channel, Message},
discord::images,
framework::{
events::traits::{EventResult, OnMessageHandler},
runtime::Runtime,
},
groups::calls::moderation::escape_message,
groups::calls::{get_display_profile, moderation::escape_message},
state::State,
};
@@ -128,49 +126,3 @@ impl OnMessageHandler<State> for MessageRedirector {
Ok(())
}
}
#[derive(Debug, Clone)]
pub struct DisplayProfile {
pub id: u64,
pub name: String,
pub avatar_url: String,
pub mask: Option<String>,
}
fn get_display_profile(event: &MessageCreate) -> DisplayProfile {
let member = event.member.clone();
let name = if let Some(nick) = &member.clone().and_then(|member| member.nick) {
if webhook_username(nick).is_err() {
"Invalid Nickname".to_string()
} else {
nick.clone()
}
} else if let Some(name) = &event.author.global_name {
if webhook_username(name).is_err() {
"Invalid Global Name".to_string()
} else {
name.clone()
}
} else if webhook_username(&event.author.name).is_err() {
"Invalid Username".to_string()
} else {
event.author.name.clone()
};
let avatar_hash = member
.and_then(|inner| inner.avatar)
.or(event.author.avatar);
let avatar_url = images::get_avatar_url(
avatar_hash,
event.author.id.get(),
event.author.discriminator as u64,
);
DisplayProfile {
id: event.author.id.get(),
name,
avatar_url,
mask: None,
}
}