refraction/src/utils/mod.rs
2024-03-29 18:07:56 -04:00

37 lines
834 B
Rust

use crate::api::REQWEST_CLIENT;
use eyre::Result;
use log::debug;
use poise::serenity_prelude::{CreateEmbedAuthor, User};
use reqwest::Response;
pub mod resolve_message;
pub async fn get_url(url: &str) -> Result<Response> {
debug!("Making request to {url}");
let resp = REQWEST_CLIENT.get(url).send().await?;
resp.error_for_status_ref()?;
Ok(resp)
}
pub async fn text_from_url(url: &str) -> Result<String> {
let resp = get_url(url).await?;
let text = resp.text().await?;
Ok(text)
}
pub async fn bytes_from_url(url: &str) -> Result<Vec<u8>> {
let resp = get_url(url).await?;
let bytes = resp.bytes().await?;
Ok(bytes.to_vec())
}
pub fn embed_author_from_user(user: &User) -> CreateEmbedAuthor {
CreateEmbedAuthor::new(user.tag()).icon_url(
user.avatar_url()
.unwrap_or_else(|| user.default_avatar_url()),
)
}