summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs23
-rw-r--r--src/util.rs40
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();
+}