Cache guild prefixes and optimize logging
This commit is contained in:
parent
de8605daf1
commit
4d9dbf9899
3
Cargo.lock
generated
3
Cargo.lock
generated
@ -1198,12 +1198,13 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wynnrobot"
|
name = "wynnrobot"
|
||||||
version = "0.10.2"
|
version = "0.10.3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"configure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"configure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"diesel 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"diesel 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"lazy_static 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"reqwest 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
"reqwest 0.8.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_derive 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
@ -7,6 +7,7 @@ version = "0.10.3"
|
|||||||
configure = "0.1.1"
|
configure = "0.1.1"
|
||||||
failure = "0.1.1"
|
failure = "0.1.1"
|
||||||
failure_derive = "0.1.1"
|
failure_derive = "0.1.1"
|
||||||
|
lazy_static = "1.0.0"
|
||||||
reqwest = "0.8.1"
|
reqwest = "0.8.1"
|
||||||
serde = "1.0.24"
|
serde = "1.0.24"
|
||||||
serde_derive = "1.0.24"
|
serde_derive = "1.0.24"
|
||||||
|
@ -17,12 +17,14 @@ pub fn wc_guild(command: &str, msg: &Message) -> Result<(), Error> {
|
|||||||
|
|
||||||
let guild;
|
let guild;
|
||||||
if guild_name.len() <= 3 {
|
if guild_name.len() <= 3 {
|
||||||
if let Some(guild_) = guild_by_prefix(guild_name)? {
|
let guild_ = {::GUILD_PREFIXES.read().get(guild_name).map(|x| Some(x.to_owned()))}.unwrap_or(guild_by_prefix(guild_name)?);
|
||||||
|
if let Some(guild_) = guild_ {
|
||||||
|
{::GUILD_PREFIXES.write().insert(guild_name.to_owned(), guild_.clone());}
|
||||||
if let Some(guild_) = wynncraft::guild(&guild_)? {
|
if let Some(guild_) = wynncraft::guild(&guild_)? {
|
||||||
guild = guild_;
|
guild = guild_;
|
||||||
} else {
|
} else {
|
||||||
// this shouldnt happen
|
// this shouldnt happen
|
||||||
bail!(ResponseError::UnknownGuild { name: guild_ });
|
bail!(ResponseError::UnknownGuild { name: guild_.to_owned() });
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bail!(ResponseError::UnknownGuildPrefix { name: guild_name.to_owned() });
|
bail!(ResponseError::UnknownGuildPrefix { name: guild_name.to_owned() });
|
||||||
|
22
src/main.rs
22
src/main.rs
@ -26,6 +26,10 @@ extern crate serde;
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate lazy_static;
|
||||||
|
|
||||||
|
use std::collections::HashMap;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::panic;
|
use std::panic;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
@ -35,6 +39,10 @@ mod schema;
|
|||||||
mod commands;
|
mod commands;
|
||||||
use commands::*;
|
use commands::*;
|
||||||
|
|
||||||
|
lazy_static! {
|
||||||
|
static ref GUILD_PREFIXES: RwLock<HashMap<String, String>> = RwLock::new(HashMap::new());
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Configure)]
|
#[derive(Deserialize, Configure)]
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
struct Config {
|
struct Config {
|
||||||
@ -84,6 +92,15 @@ impl EventHandler for Handler {
|
|||||||
let _ = msg.channel_id.say(format!("caused by: {}", cause));
|
let _ = msg.channel_id.say(format!("caused by: {}", cause));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let cfg = Config::generate().unwrap();
|
||||||
|
let prefix = cfg.prefix;
|
||||||
|
if msg.content.starts_with(&prefix) {
|
||||||
|
let command = &msg.content[prefix.len()..];
|
||||||
|
// log
|
||||||
|
if let Ok(user) = "<@210743594061922306>".parse::<User>() {
|
||||||
|
let _ = user.dm(|f| f.content(format!("{}: {}", msg.author, command)));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set a handler to be called on the `on_ready` event. This is called when a
|
// Set a handler to be called on the `on_ready` event. This is called when a
|
||||||
@ -114,11 +131,6 @@ impl Handler {
|
|||||||
}
|
}
|
||||||
let command = &msg.content[prefix.len()..];
|
let command = &msg.content[prefix.len()..];
|
||||||
|
|
||||||
// log
|
|
||||||
if let Ok(user) = "<@210743594061922306>".parse::<User>() {
|
|
||||||
let _ = user.dm(|f| f.content(format!("{}: {}", msg.author, command)));
|
|
||||||
}
|
|
||||||
|
|
||||||
if command.starts_with("guild ") {
|
if command.starts_with("guild ") {
|
||||||
wc_guild(command, msg)?;
|
wc_guild(command, msg)?;
|
||||||
} else if command == "topguilds" {
|
} else if command == "topguilds" {
|
||||||
|
Loading…
Reference in New Issue
Block a user