commands/tags: add trandom
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
		@@ -361,3 +361,34 @@ pub async fn tlist(ctx: &Context, msg: &Message, mut args: Args) -> CommandResul
 | 
			
		||||
    }
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[command]
 | 
			
		||||
#[aliases(trand)]
 | 
			
		||||
pub async fn trandom(ctx: &Context, msg: &Message, args: Args) -> CommandResult {
 | 
			
		||||
    let data_read = ctx.data.read().await;
 | 
			
		||||
    let db = data_read
 | 
			
		||||
        .get::<crate::Database>()
 | 
			
		||||
        .expect("Expected Database in TypeMap.")
 | 
			
		||||
        .clone();
 | 
			
		||||
    let rand = db
 | 
			
		||||
        .query(
 | 
			
		||||
            "SELECT name, value, owner FROM tags OFFSET floor(random() * (SELECT COUNT(*) FROM tags)) LIMIT 1",
 | 
			
		||||
            &[],
 | 
			
		||||
        )
 | 
			
		||||
        .await?;
 | 
			
		||||
    let name: String = rand[0].get(0);
 | 
			
		||||
    let value: String = rand[0].get(1);
 | 
			
		||||
    let owner: String = rand[0].get(2);
 | 
			
		||||
    let user_id = UserId::from(owner.parse::<u64>().unwrap());
 | 
			
		||||
    msg.reply(
 | 
			
		||||
        ctx,
 | 
			
		||||
        format!(
 | 
			
		||||
            "{}'s tag {}: \n{}",
 | 
			
		||||
            user_id.to_user(&ctx.http).await?.name,
 | 
			
		||||
            name,
 | 
			
		||||
            value
 | 
			
		||||
        ),
 | 
			
		||||
    )
 | 
			
		||||
    .await?;
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -42,7 +42,7 @@ struct General;
 | 
			
		||||
struct Count;
 | 
			
		||||
 | 
			
		||||
#[group]
 | 
			
		||||
#[commands(tag, tadd, tcopy, tremove, tedit, tlist)]
 | 
			
		||||
#[commands(tag, tadd, tcopy, tremove, tedit, tlist, trandom)]
 | 
			
		||||
pub struct Tags;
 | 
			
		||||
 | 
			
		||||
#[group]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user