mirror of
https://github.com/natsukagami/youmubot.git
synced 2025-04-19 16:58:55 +00:00
Load youmubot-cf
This commit is contained in:
parent
3ad172a5b6
commit
7c77b7fd61
3 changed files with 52 additions and 2 deletions
|
@ -1 +1,45 @@
|
||||||
pub mod embed;
|
use serenity::{
|
||||||
|
framework::standard::{
|
||||||
|
macros::{command, group},
|
||||||
|
Args, CommandResult,
|
||||||
|
},
|
||||||
|
model::{channel::Message, id::UserId},
|
||||||
|
};
|
||||||
|
use youmubot_prelude::*;
|
||||||
|
|
||||||
|
mod embed;
|
||||||
|
|
||||||
|
#[group]
|
||||||
|
#[prefix = "cf"]
|
||||||
|
#[description = "Codeforces-related commands"]
|
||||||
|
#[commands(profile)]
|
||||||
|
#[default_command(profile)]
|
||||||
|
pub struct Codeforces;
|
||||||
|
|
||||||
|
#[command]
|
||||||
|
#[aliases("p", "show", "u", "user", "get")]
|
||||||
|
#[description = "Get an user's profile"]
|
||||||
|
#[usage = "[handle or tag = yourself]"]
|
||||||
|
#[example = "natsukagami"]
|
||||||
|
#[num_args(1)]
|
||||||
|
pub fn profile(ctx: &mut Context, m: &Message, mut args: Args) -> CommandResult {
|
||||||
|
let handle = args.single::<String>()?;
|
||||||
|
let http = ctx.data.get_cloned::<HTTPClient>();
|
||||||
|
|
||||||
|
let account = codeforces::User::info(&http, &[&handle[..]])?
|
||||||
|
.into_iter()
|
||||||
|
.next();
|
||||||
|
|
||||||
|
match account {
|
||||||
|
Some(v) => m.channel_id.send_message(&ctx, |send| {
|
||||||
|
send.content(format!(
|
||||||
|
"{}: Here is the user that you requested",
|
||||||
|
m.author.mention()
|
||||||
|
))
|
||||||
|
.embed(|e| embed::user_embed(&v, e))
|
||||||
|
}),
|
||||||
|
None => m.reply(&ctx, "User not found"),
|
||||||
|
}?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
|
@ -6,9 +6,10 @@ edition = "2018"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
[features]
|
[features]
|
||||||
default = ["core", "osu"]
|
default = ["core", "osu", "codeforces"]
|
||||||
core = []
|
core = []
|
||||||
osu = ["youmubot-osu"]
|
osu = ["youmubot-osu"]
|
||||||
|
codeforces = ["youmubot-cf"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serenity = "0.8"
|
serenity = "0.8"
|
||||||
|
@ -17,4 +18,5 @@ youmubot-db = { path = "../youmubot-db" }
|
||||||
youmubot-prelude = { path = "../youmubot-prelude" }
|
youmubot-prelude = { path = "../youmubot-prelude" }
|
||||||
youmubot-core = { path = "../youmubot-core" }
|
youmubot-core = { path = "../youmubot-core" }
|
||||||
youmubot-osu = { path = "../youmubot-osu", optional = true }
|
youmubot-osu = { path = "../youmubot-osu", optional = true }
|
||||||
|
youmubot-cf = { path = "../youmubot-cf", optional = true }
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,8 @@ fn main() {
|
||||||
println!("Core enabled.");
|
println!("Core enabled.");
|
||||||
#[cfg(feature = "osu")]
|
#[cfg(feature = "osu")]
|
||||||
println!("osu! enabled.");
|
println!("osu! enabled.");
|
||||||
|
#[cfg(feature = "codeforces")]
|
||||||
|
println!("codeforces enabled.");
|
||||||
|
|
||||||
client.with_framework(fw);
|
client.with_framework(fw);
|
||||||
|
|
||||||
|
@ -155,5 +157,7 @@ fn setup_framework(client: &Client) -> StandardFramework {
|
||||||
.group(&youmubot_core::COMMUNITY_GROUP);
|
.group(&youmubot_core::COMMUNITY_GROUP);
|
||||||
#[cfg(feature = "osu")]
|
#[cfg(feature = "osu")]
|
||||||
let fw = fw.group(&youmubot_osu::discord::OSU_GROUP);
|
let fw = fw.group(&youmubot_osu::discord::OSU_GROUP);
|
||||||
|
#[cfg(feature = "codeforces")]
|
||||||
|
let fw = fw.group(&youmubot_cf::CODEFORCES_GROUP);
|
||||||
fw
|
fw
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue