diff options
| author | Nathan Perry <avaglir@gmail.com> | 2018-02-13 21:46:05 -0500 |
|---|---|---|
| committer | Nathan Perry <avaglir@gmail.com> | 2018-02-13 21:46:05 -0500 |
| commit | 04da3bc579466e7fae48c3df2dbc17ed3b7d4a52 (patch) | |
| tree | f8fa442a889061cb16970b7eed8a33479d7eeef8 /src | |
| parent | ef6e70691aa719bb7166619795aa15bbd9734f65 (diff) | |
working version
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 23 | ||||
| -rw-r--r-- | src/util.rs | 40 |
2 files changed, 39 insertions, 24 deletions
diff --git a/src/main.rs b/src/main.rs index 0f7b22b..58e059e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ #[macro_use] extern crate serenity; #[macro_use] extern crate log; #[macro_use] extern crate error_chain; -#[macro_use] extern crate dotenv_codegen; +#[macro_use] extern crate lazy_static; extern crate dotenv; extern crate simple_logger; @@ -12,7 +12,12 @@ mod commands; mod util; mod errors { - error_chain!(); + error_chain! { + foreign_links { + Serenity(::serenity::Error); + OS(::std::env::VarError); + } + } } use errors::*; @@ -34,16 +39,18 @@ use dotenv::dotenv; struct Handler; impl EventHandler for Handler { fn ready(&self, _c: Context, r: Ready) { - r.guilds.iter().find(|g| { + let guild = r.guilds.iter().find(|g| { g.id().0 == 0 - }).or_else(|| { - info!("bot isn't in configured guild. let it join here: {}", OAUTH_URL); }); + + if guild.is_none() { + info!("bot isn't in configured guild. let it join here: {:?}", OAUTH_URL.as_str()); + } } } fn run() -> Result<()> { - let token = &env::var("DISCORD_TOKEN")?; + let token = &env::var("THULANI_TOKEN")?; let mut client = Client::new(token, Handler)?; let framework = StandardFramework::new() .configure(|c| c @@ -88,7 +95,7 @@ fn main() { const MIN_RUN_DURATION: Duration = Duration::from_secs(120); dotenv().ok(); - simple_logger::init().unwrap(); + simple_logger::init_with_level(log::Level::Debug).unwrap(); let mut backoff_count: usize = 0; @@ -115,7 +122,7 @@ fn main() { } backoff_count += 1; - if backoff_count >= 3 { + if backoff_count >= MAX_BACKOFFS { panic!("restarted bot too many times"); } diff --git a/src/util.rs b/src/util.rs index 7903771..6f70037 100644 --- a/src/util.rs +++ b/src/util.rs @@ -1,20 +1,28 @@ +use std::env; + use serenity::model::permissions::Permissions; use url::Url; -const REQUIRED_PERMS: Permissions = Permissions::EMBED_LINKS | - Permissions::READ_MESSAGES | - Permissions::ADD_REACTIONS | - Permissions::SEND_MESSAGES | - Permissions::SEND_TTS_MESSAGES | - Permissions::MENTION_EVERYONE | - Permissions::USE_EXTERNAL_EMOJIS | - Permissions::CONNECT | - Permissions::SPEAK | - Permissions::CHANGE_NICKNAME | - Permissions::USE_VAD | - Permissions::ATTACH_FILES; +lazy_static! { + static ref REQUIRED_PERMS: Permissions = Permissions::EMBED_LINKS | + Permissions::READ_MESSAGES | + Permissions::ADD_REACTIONS | + Permissions::SEND_MESSAGES | + Permissions::SEND_TTS_MESSAGES | + Permissions::MENTION_EVERYONE | + Permissions::USE_EXTERNAL_EMOJIS | + Permissions::CONNECT | + Permissions::SPEAK | + Permissions::CHANGE_NICKNAME | + Permissions::USE_VAD | + Permissions::ATTACH_FILES; +} -pub const OAUTH_URL: Url = Url::parse( - concat!("https://discordapp.com/api/oauth2/authorize?scope=bot", - "&permissions=", stringify!(REQUIRED_PERMS.bits()), - "&client_id=", dotenv!("THULANI_CLIENT_ID"))).unwrap(); +lazy_static! { + pub static ref OAUTH_URL: Url = Url::parse( + &format!( + "https://discordapp.com/api/oauth2/authorize?scope=bot&permissions={}&client_id={}", + REQUIRED_PERMS.bits(), env::var("THULANI_CLIENT_ID").expect("client ID was missing. please specify THULANI_CLIENT_ID in env or .env."), + ) + ).unwrap(); +} |
