From fe467f60d99efa54f2ef64606e7d39b9b06d7294 Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Wed, 8 May 2024 10:28:04 -0400 Subject: update all deps --- src/commands/meme/mod.rs | 119 ++++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 57 deletions(-) (limited to 'src/commands/meme/mod.rs') diff --git a/src/commands/meme/mod.rs b/src/commands/meme/mod.rs index 6ce30b6..31d9b78 100644 --- a/src/commands/meme/mod.rs +++ b/src/commands/meme/mod.rs @@ -1,9 +1,16 @@ use diesel::PgConnection; use log::debug; -use rand::{Rng, thread_rng}; +use rand::random; use serenity::{ - framework::standard::macros::group, - http::AttachmentType, + all::ReactionType, + builder::{ + CreateAttachment, + CreateMessage, + }, + framework::standard::{ + macros::group, + CommandResult, + }, model::channel::Message, prelude::*, }; @@ -14,7 +21,6 @@ use crate::{ PlayQueue, }, db::Meme, - Result, }; pub use self::{ @@ -24,68 +30,67 @@ pub use self::{ invoke::*, }; -mod history; mod create; -mod invoke; mod delete; +mod history; +mod invoke; -group!({ - name: "memes", - options: { - only_in: "guild", - }, - commands: [ - meme, - audio_meme, - silent_Meme, - omen, - audioomen, - silentomen, - addmeme, - addaudiomeme, - delmeme, - wat, - stats, - history, - rare_meme, - memers, - query, - ], -}); - -fn send_meme(ctx: &Context, t: &Meme, conn: &mut PgConnection, msg: &Message) -> Result<()> { - let should_tts = t.content.as_ref().map(|t| t.len() > 0).unwrap_or(false) && - thread_rng().gen::() % 25 == 0; +#[group] +#[commands( + meme, + audio_meme, + silent_meme, + omen, + audioomen, + silentomen, + addmeme, + addaudiomeme, + delmeme, + wat, + stats, + history, + rare_meme, + memers, + query +)] +struct Memes; + +async fn send_meme( + ctx: &Context, + t: &Meme, + conn: &mut PgConnection, + msg: &Message, +) -> CommandResult { + let should_tts = + t.content.as_ref().map(|t| t.len() > 0).unwrap_or(false) && random::() % 25 == 0; debug!("sending meme (tts: {}): {:?}", should_tts, t); let image = t.image(conn); let audio = t.audio(conn); + let cmsg = { + let ret = CreateMessage::default().tts(should_tts); + + match t.content { + Some(ref text) if text.len() > 0 => ret.content(text), + _ => ret, + } + }; + match image { Some(image) => { let image = image?; - msg.channel_id.send_files(ctx, vec!(AttachmentType::Bytes((&image.data, &image.filename))), |m| { - let ret = m.tts(should_tts); - - match t.content { - Some(ref text) if text.len() > 0 => ret.content(text), - _ => ret, - } - })?; + let att = CreateAttachment::bytes(image.data.as_slice(), &image.filename); + + msg.channel_id.send_files(ctx, vec![att], cmsg).await?; }, None => match t.content { - Some(_) => { msg.channel_id.send_message(ctx, |m| { - let ret = m.tts(should_tts); - - match t.content { - Some(ref text) if text.len() > 0 => ret.content(text), - _ => ret, - } - })?; }, + Some(_) => { + msg.channel_id.send_message(ctx, cmsg).await?; + }, None => {}, - }, }; @@ -96,19 +101,19 @@ fn send_meme(ctx: &Context, t: &Meme, conn: &mut PgConnection, msg: &Message) -> let audio = audio?; { - let queue_lock = ctx.data.write().get::().cloned().unwrap(); + let queue_lock = ctx.data.write().await.get::().cloned().unwrap(); let mut play_queue = queue_lock.write().unwrap(); - play_queue.meme_queue.push_back(PlayArgs{ - initiator: msg.author.name.clone(), - data: ::either::Right(audio.data.clone()), + play_queue.meme_queue.push_back(PlayArgs { + initiator: msg.author.name.clone(), + data: ::either::Right(audio.data.clone()), sender_channel: msg.channel_id, - start: None, - end: None, + start: None, + end: None, }); } - msg.react(ctx, "📣")?; + msg.react(ctx, ReactionType::Unicode("📣".to_owned())).await?; } Ok(()) -- cgit v1.3.1