feat: add embed for list and answer if the file is not a MP3 or MP4
This commit is contained in:
parent
4fb0174c99
commit
89a107503f
@ -1,7 +1,7 @@
|
|||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
use serenity::{
|
use serenity::{
|
||||||
all::Message,
|
all::Message,
|
||||||
builder::{CreateAttachment, CreateMessage},
|
builder::{CreateAttachment, CreateEmbed, CreateEmbedFooter, CreateMessage},
|
||||||
client::Context,
|
client::Context,
|
||||||
framework::standard::{macros::command, Args, CommandResult},
|
framework::standard::{macros::command, Args, CommandResult},
|
||||||
};
|
};
|
||||||
@ -114,7 +114,22 @@ pub async fn answer(ctx: &Context, msg: &Message, mut args: Args) -> CommandResu
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
if filename.ends_with(".mp3") || filename.ends_with(".mp4") {
|
||||||
|
let builder = CreateMessage::new()
|
||||||
|
.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(());
|
||||||
|
}
|
||||||
|
let footer = CreateEmbedFooter::new("WeeboBot");
|
||||||
|
let embed = CreateEmbed::new()
|
||||||
|
.title(keyword)
|
||||||
|
.footer(footer)
|
||||||
|
.image(format!("attachment://{}", filename));
|
||||||
let builder = CreateMessage::new()
|
let builder = CreateMessage::new()
|
||||||
|
.embed(embed)
|
||||||
.add_file(attachment)
|
.add_file(attachment)
|
||||||
.reference_message(msg);
|
.reference_message(msg);
|
||||||
if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await {
|
if let Err(why) = msg.channel_id.send_message(&ctx.http, builder).await {
|
||||||
|
@ -1,21 +1,44 @@
|
|||||||
|
use serenity::builder::{CreateEmbed, CreateEmbedFooter, CreateMessage};
|
||||||
use serenity::{
|
use serenity::{
|
||||||
all::Message,
|
all::Message,
|
||||||
client::Context,
|
client::Context,
|
||||||
framework::standard::{macros::command, CommandResult},
|
framework::standard::{macros::command, CommandResult},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use crate::img::config_file::ConfigImgGlobal;
|
||||||
|
|
||||||
#[command]
|
#[command]
|
||||||
#[description = "List supported meme keywords"]
|
#[description = "List supported meme keywords"]
|
||||||
pub async fn list(ctx: &Context, msg: &Message) -> CommandResult {
|
pub async fn list(ctx: &Context, msg: &Message) -> CommandResult {
|
||||||
if let Err(why) = msg
|
let config_img = {
|
||||||
.channel_id
|
let data_read = ctx.data.read().await;
|
||||||
.say(
|
data_read
|
||||||
&ctx.http,
|
.get::<ConfigImgGlobal>()
|
||||||
"Soon TM - List of supported meme keywords will be available here.",
|
.expect("Config img not found")
|
||||||
)
|
.clone()
|
||||||
.await
|
};
|
||||||
{
|
let list_value: Vec<(String, String, bool)> = config_img
|
||||||
println!("Error sending message: {:?}", why)
|
.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(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user