Add korone command

Signed-off-by: trivernis <trivernis@protonmail.com>
pull/26/head
trivernis 3 years ago
parent 4d67dce3cd
commit b9f9359ed7
Signed by: Trivernis
GPG Key ID: DFFFCC2C7A02DB45

@ -0,0 +1,14 @@
use crate::commands::weeb::post_random_media;
use serenity::client::Context;
use serenity::framework::standard::macros::command;
use serenity::framework::standard::CommandResult;
use serenity::model::channel::Message;
#[command]
#[description("Posts a random korone gif")]
#[usage("")]
#[aliases("yubi")]
#[bucket("general")]
async fn korone(ctx: &Context, msg: &Message) -> CommandResult {
post_random_media(ctx, msg, "korone").await
}

@ -1,26 +1,13 @@
use crate::utils::context_data::get_database_from_context;
use crate::utils::error::BotError;
use rand::prelude::IteratorRandom;
use crate::commands::weeb::post_random_media;
use serenity::client::Context;
use serenity::framework::standard::macros::command;
use serenity::framework::standard::CommandResult;
use serenity::model::channel::Message;
static MEDIA_CATEGORY: &str = "matsuri";
#[command]
#[description("Posts a random matsuri gif")]
#[usage("")]
#[bucket("general")]
async fn matsuri(ctx: &Context, msg: &Message) -> CommandResult {
let database = get_database_from_context(ctx).await;
let media = database.get_media_by_category(MEDIA_CATEGORY).await?;
let gif = media
.into_iter()
.choose(&mut rand::thread_rng())
.ok_or(BotError::from("No gifs found."))?;
msg.channel_id.say(ctx, gif.url).await?;
Ok(())
post_random_media(ctx, msg, "matsuri").await
}

@ -1,13 +1,36 @@
use serenity::framework::standard::macros::group;
mod korone;
mod matsuri;
mod pekofy;
mod sauce;
use crate::utils::context_data::get_database_from_context;
use crate::utils::error::BotError;
use rand::prelude::IteratorRandom;
use serenity::client::Context;
use serenity::framework::standard::CommandResult;
use serenity::model::channel::Message;
use korone::KORONE_COMMAND;
use matsuri::MATSURI_COMMAND;
use pekofy::PEKOFY_COMMAND;
use sauce::SAUCE_COMMAND;
#[group]
#[commands(pekofy, sauce, matsuri)]
#[commands(pekofy, sauce, matsuri, korone)]
pub struct Weeb;
/// Posts a random media entry with the given category
async fn post_random_media(ctx: &Context, msg: &Message, category: &str) -> CommandResult {
let database = get_database_from_context(ctx).await;
let media = database.get_media_by_category(category).await?;
let gif = media
.into_iter()
.choose(&mut rand::thread_rng())
.ok_or(BotError::from("No media found."))?;
msg.channel_id.say(ctx, gif.url).await?;
Ok(())
}

Loading…
Cancel
Save