feat: add embed for list and answer if the file is not a MP3 or MP4

This commit is contained in:
max 2024-02-11 23:32:20 +00:00
parent 4fb0174c99
commit 89a107503f
2 changed files with 48 additions and 10 deletions

View File

@ -1,7 +1,7 @@
use rand::Rng;
use serenity::{
all::Message,
builder::{CreateAttachment, CreateMessage},
builder::{CreateAttachment, CreateEmbed, CreateEmbedFooter, CreateMessage},
client::Context,
framework::standard::{macros::command, Args, CommandResult},
};
@ -114,6 +114,7 @@ pub async fn answer(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu
return Ok(());
}
};
if filename.ends_with(".mp3") || filename.ends_with(".mp4") {
let builder = CreateMessage::new()
.add_file(attachment)
.reference_message(msg);
@ -122,6 +123,20 @@ pub async fn answer(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu
}
return Ok(());
}
let footer = CreateEmbedFooter::new("WeeboBot");
let embed = CreateEmbed::new()
.title(keyword)
.footer(footer)
.image(format!("attachment://{}", filename));
let builder = CreateMessage::new()
.embed(embed)
.add_file(attachment)
.reference_message(msg);
if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await {
println!("Error sending message: {:?}", why);
}
return Ok(());
}
if let Err(why) = msg
.channel_id
.say(

View File

@ -1,21 +1,44 @@
use serenity::builder::{CreateEmbed, CreateEmbedFooter, CreateMessage};
use serenity::{
all::Message,
client::Context,
framework::standard::{macros::command, CommandResult},
};
use crate::img::config_file::ConfigImgGlobal;
#[command]
#[description = "List supported meme keywords"]
pub async fn list(ctx: &Context, msg: &Message) -> CommandResult {
if let Err(why) = msg
.channel_id
.say(
&ctx.http,
"Soon TM - List of supported meme keywords will be available here.",
)
.await
{
let config_img = {
let data_read = ctx.data.read().await;
data_read
.get::<ConfigImgGlobal>()
.expect("Config img not found")
.clone()
};
let list_value: Vec<(String, String, bool)> = config_img
.keyword
.iter()
.map(|x| (x.value.clone().join(", "), String::new(), true))
.collect();
if list_value.is_empty() {
let builder = CreateMessage::new().content("No meme keyword found");
if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await {
println!("Error sending message: {:?}", why)
}
return Ok(());
}
for chunks in list_value.chunks(25) {
let footer = CreateEmbedFooter::new("WeeboBot");
let embed = CreateEmbed::new()
.title("Meme List")
.fields(chunks.to_vec())
.footer(footer);
let builder = CreateMessage::new().embed(embed);
if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await {
println!("Error sending message: {:?}", why)
}
}
Ok(())
}