use furbooru::Client; use robespierre::framework::standard::{macros::command, CommandResult, FwContext}; use std::sync::Arc; use tokio::sync::Mutex; pub struct ClientKey; impl robespierre::typemap::Key for ClientKey { type Value = Arc>; } pub fn make(username: String, api_key: String) -> Arc> { Arc::new(Mutex::new( Client::new(user_agent(username), api_key).unwrap(), )) } pub fn user_agent(username: String) -> String { format!( "{}/{} (owner: {})", env!("CARGO_PKG_NAME"), env!("CARGO_PKG_VERSION"), username, ) } #[command] pub async fn search(ctx: &FWContext, msg: &Message, args: &str) -> CommandResult { Ok(()) }