Add colored to dependencies

Disable waffle command
Proper error handling 2: electric boogaloo
Add more uwu pictures
Add arg handling for info command
This commit is contained in:
Agatha Rose 2020-04-22 21:56:01 +03:00
parent 2441b66c01
commit d4a833edcc
3 changed files with 66 additions and 22 deletions

23
Cargo.lock generated
View File

@ -18,6 +18,16 @@ name = "antidote"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"hermit-abi 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "autocfg"
version = "1.0.0"
@ -132,6 +142,16 @@ dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "colored"
version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "command_attr"
version = "0.1.7"
@ -1032,6 +1052,7 @@ dependencies = [
name = "rustcord"
version = "0.3.4"
dependencies = [
"colored 1.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"owoify 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
@ -1746,6 +1767,7 @@ dependencies = [
"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
"checksum antidote 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "34fde25430d87a9388dadbe6e34d7f72a462c8b43ac8d309b42b0a8505d7e2a5"
"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
"checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
@ -1763,6 +1785,7 @@ dependencies = [
"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
"checksum colored 1.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59"
"checksum command_attr 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b61098146d3e0ad56c4918ae30ab9f32a7222cc859fc65fbc2a8475c1e48b336"
"checksum core-foundation 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25bfd746d203017f7d5cbd31ee5d8e17f94b6521c7af77ece6c9e4b2d4b16c67"
"checksum core-foundation 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"

View File

@ -14,6 +14,7 @@ sys-info = "0.6.0"
urbandict = "0.2.0"
owoify = "0.1.5"
lazy_static = "1.4.0"
colored = "1.9.3"
[patch.crates-io]
openssl = { git = "https://github.com/ishitatsuyuki/rust-openssl", branch = "0.9.x" }

View File

@ -3,12 +3,14 @@
#[macro_use]
extern crate lazy_static;
use colored::*;
use rand::Rng;
use serenity::{
client::Client,
framework::standard::{
macros::{check, command, group},
Args, CheckResult, CommandOptions, CommandResult, DispatchError, Reason, StandardFramework,
Args, CheckResult, CommandError, CommandOptions, CommandResult, DispatchError, Reason,
StandardFramework,
},
model::{channel::Message, gateway::Ready, id::UserId, user::OnlineStatus},
prelude::*,
@ -38,8 +40,8 @@ impl EventHandler for Handler {
#[group]
#[commands(
init, ping, halt, list_srv, host, ship, bottom_rng, headpat, uwu, gayculator, waffle, sausage,
help, embed, define, owo, info
init, ping, halt, list_srv, host, ship, bottom_rng, headpat, uwu, gayculator, sausage, help,
embed, define, owo, info
)]
struct General;
@ -78,6 +80,14 @@ fn main() {
.say(&ctx.http, &format!("Try again in {} seconds.", seconds));
}
})
.after(|_ctx, _msg, cmd_name, error| {
if let Err(why) = error {
eprintln!(
"{}",
format!("Error in {}: {}", cmd_name.purple(), why.0.red().bold())
);
}
})
.group(&GENERAL_GROUP),
);
@ -191,19 +201,7 @@ fn embed(ctx: &mut Context, message: &Message, args: Args) -> CommandResult {
let input_embed: EmbedProperties = match toml::from_str(args.rest().trim()) {
Ok(v) => v,
Err(e) => {
eprintln!("Deserialization error: {:?}", e);
EmbedProperties {
author: None,
colour: None,
description: None,
fields: None,
footer: None,
image: None,
timestamp: None,
title: None,
url: None,
}
return Err(CommandError(format!("Deserialization error: {:?}", e)));
}
};
@ -365,8 +363,14 @@ fn ship(ctx: &mut Context, message: &Message, args: Args) -> CommandResult {
#[command]
#[aliases("pat")]
fn headpat(ctx: &mut Context, message: &Message, args: Args) -> CommandResult {
let args = args.rest().trim();
if args.is_empty() {
return Err(CommandError("Please specify a username!".to_string()));
}
let name = match message.mentions.len() {
0 => args.rest().trim(),
0 => args,
_ => message.mentions[0].name.as_str(),
};
@ -391,12 +395,23 @@ fn uwu(ctx: &mut Context, message: &Message) -> CommandResult {
"https://i.redditmedia.com/qDD9W7NJqTAk31y061TuRW9R8qOcCuEmmCWyOsUEavE.png?fit=crop&crop=faces%2Centropy&arh=2&w=640&s=ebdd3f1970b4fe70ccd24a1958e7fc32",
"https://www.shitpostbot.com/img/sourceimages/smash-that-mfuckn-uwu-button-57b5aa1de9fe4.jpeg",
"https://www.shitpostbot.com/img/sourceimages/fallout-nv-owo-57e586ae15322.jpeg",
"https://i.redditmedia.com/-JaK9YW7mPz2S2xBJmXvW4fZ58uGMa4l6GIgYt3dqZg.jpg?fit=crop&crop=faces%2Centropy&arh=2&w=640&s=ebab29a577346b4d18ec914538b69bb4"
"https://i.redditmedia.com/-JaK9YW7mPz2S2xBJmXvW4fZ58uGMa4l6GIgYt3dqZg.jpg?fit=crop&crop=faces%2Centropy&arh=2&w=640&s=ebab29a577346b4d18ec914538b69bb4",
"https://preview.redd.it/ie48xuwurzt41.jpg?width=640&crop=smart&auto=webp&s=c4a27d5ed086430cd29530a3d3c8e846cad867d5",
"https://i.redd.it/9aw0yzprztq41.jpg",
"https://i.redd.it/gxjx9jb01ef41.jpg",
"https://i.redd.it/n0liugufmks41.jpg",
"https://preview.redd.it/fcfrmarhj9s41.jpg?width=640&crop=smart&auto=webp&s=5a4ff9a471dca7cad61b8e56bc65876ef083304a",
"https://i.redd.it/ifwsmbme48q41.jpg"
];
let num = rand::thread_rng().gen_range(0, images.len());
let _ = message
.channel_id
.send_message(&ctx.http, |m| m.embed(|e| e.image(images[num])));
.send_message(&ctx.http, |m| m.embed(|e| {
e.image(images[num]);
e.footer(|f| f.text(format!("Source: {}", images[num])));
e
}));
Ok(())
}
@ -420,12 +435,14 @@ fn gayculator(ctx: &mut Context, message: &Message, mut args: Args) -> CommandRe
Ok(())
}
/*
#[command]
fn waffle(ctx: &mut Context, message: &Message) -> CommandResult {
let _ = message.channel_id.say(&ctx.http, "h");
Ok(())
}
*/
#[command]
fn sausage(ctx: &mut Context, message: &Message) -> CommandResult {
@ -464,7 +481,7 @@ fn help(ctx: &mut Context, message: &Message) -> CommandResult {
.fields(vec![
("owo init", "Introduce me", false),
("owo ping", "Pong", false),
("owo waffle", "stroopwafel owo", false),
/*("owo waffle", "stroopwafel owo", false),*/
("owo sausage", "sosig", false),
("owo help", "Help the fellow humanz!", false),
("owo info", "Show information about me!", false),
@ -499,12 +516,15 @@ fn help(ctx: &mut Context, message: &Message) -> CommandResult {
}
#[command]
fn info(ctx: &mut Context, message: &Message) -> CommandResult {
fn info(ctx: &mut Context, message: &Message, args: Args) -> CommandResult {
if !args.is_empty() {
return Err(CommandError("Error: Called with args!".to_string()));
}
let num = ctx.cache.read().guilds.len();
let _ = message.channel_id.send_message(&ctx.http, |m| m
.embed(|e| e
.title("Discordinator9000's info:")
.description("h")
.field("Author:", "Ahtågä lrig etüc#9000 / Agatha", false)
.field("Server count:", num , false)
.field("Invite:", "[Invite link](https://discordapp.com/api/oauth2/authorize?client_id=470350233419907129&permissions=2048&scope=bot)", false )