diff --git a/example.env b/example.env new file mode 100644 index 0000000..d82a898 --- /dev/null +++ b/example.env @@ -0,0 +1,8 @@ +HOME="." +DATABASE="database.db" +DISCORD_TOKEN="" +DISCORD_TOKEN_MINECRAFT="" +EMAIL_SMTP="" +EMAIL_USER="" +EMAIL_PASS="" +WOLVES_URL="" \ No newline at end of file diff --git a/flake.nix b/flake.nix index bf36878..5debd85 100644 --- a/flake.nix +++ b/flake.nix @@ -75,8 +75,6 @@ cfg = config.services."${package_name}"; # secret options are in the env file(s) loaded separately environment_config = { - LDAP_API = cfg.ldap; - SKYNET_SERVER = cfg.discord.server; HOME = cfg.home; DATABASE = "database.db"; }; @@ -97,7 +95,6 @@ Group = "${cfg.user}"; ExecStart = "${self.defaultPackage."${system}"}/bin/${script}"; EnvironmentFile = [ - "${cfg.env.ldap}" "${cfg.env.discord}" "${cfg.env.mail}" "${cfg.env.wolves}" @@ -133,13 +130,9 @@ enable = mkEnableOption "enable ${package_name}"; env = { - ldap = mkOption rec { - type = types.str; - description = "ENV file with LDAP_DISCORD_AUTH"; - }; discord = mkOption rec { type = types.str; - description = "ENV file with DISCORD_TOKEN, DISCORD_MINECRAFT"; + description = "ENV file with DISCORD_TOKEN, DISCORD_TOKEN_MINECRAFT"; }; mail = mkOption rec { type = types.str; @@ -147,23 +140,10 @@ }; wolves = mkOption rec { type = types.str; - description = "Mail details, has WOLVES_URL, WOLVES_KEY"; + description = "Mail details, has WOLVES_URL"; }; }; - discord = { - server = mkOption rec { - type = types.str; - description = "ID of the server the bot runs on"; - }; - }; - - ldap = mkOption rec { - type = types.str; - default = "https://api.account.skynet.ie"; - description = "Location of the ldap api"; - }; - user = mkOption rec { type = types.str; default = "${package_name}"; @@ -211,14 +191,12 @@ ExecStart = "${self.defaultPackage."${system}"}/bin/${package_name}"; # can have multiple env files EnvironmentFile = [ - "${cfg.env.ldap}" "${cfg.env.discord}" "${cfg.env.mail}" "${cfg.env.wolves}" ]; }; restartTriggers = [ - "${cfg.env.ldap}" "${cfg.env.discord}" "${cfg.env.mail}" "${cfg.env.wolves}" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index a56a283..8cca5be 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.80.1" +channel = "1.80" diff --git a/src/bin/update_minecraft.rs b/src/bin/update_minecraft.rs index 016de39..72aad1c 100644 --- a/src/bin/update_minecraft.rs +++ b/src/bin/update_minecraft.rs @@ -15,7 +15,7 @@ async fn main() { for server in &servers { // wipe whitelist first if !wiped.contains(&server.minecraft) { - whitelist_wipe(&server.minecraft, &config.discord_minecraft).await; + whitelist_wipe(&server.minecraft, &config.discord_token_minecraft).await; // add it to teh done list so its not done again wiped.insert(&server.minecraft); } diff --git a/src/commands/minecraft.rs b/src/commands/minecraft.rs index d1e38f2..b6b6dd5 100644 --- a/src/commands/minecraft.rs +++ b/src/commands/minecraft.rs @@ -73,7 +73,7 @@ pub(crate) mod user { // get a list of servers that the user is a member of if let Ok(servers) = get_servers(&db, &command.user.id).await { for server in servers { - whitelist_update(&vec![username.to_string()], &server.minecraft, &config.discord_minecraft).await; + whitelist_update(&vec![username.to_string()], &server.minecraft, &config.discord_token_minecraft).await; } } @@ -236,7 +236,7 @@ pub(crate) mod server { let mut result = "Server Information:\n".to_string(); for server in get_minecraft_config_server(&db, g_id).await { - if let Some(x) = server_information(&server.minecraft, &config.discord_minecraft).await { + if let Some(x) = server_information(&server.minecraft, &config.discord_token_minecraft).await { result.push_str(&format!( r#" Name: {name} diff --git a/src/lib.rs b/src/lib.rs index fd67d42..c0d980a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -23,19 +23,20 @@ use std::{env, str::FromStr, sync::Arc}; use tokio::sync::RwLock; pub struct Config { - pub skynet_server: GuildId, - pub ldap_api: String, + // manages where teh database is stored pub home: String, pub database: String, - pub auth: String, + // tokens for discord and other API's pub discord_token: String, - pub discord_minecraft: String, + pub discord_token_minecraft: String, + // email settings pub mail_smtp: String, pub mail_user: String, pub mail_pass: String, + // wolves API base for clubs/socs pub wolves_url: String, } impl TypeMapKey for Config { @@ -52,11 +53,8 @@ pub fn get_config() -> Config { // reasonable defaults let mut config = Config { - skynet_server: Default::default(), - ldap_api: "https://api.account.skynet.ie".to_string(), - auth: "".to_string(), discord_token: "".to_string(), - discord_minecraft: "".to_string(), + discord_token_minecraft: "".to_string(), home: ".".to_string(), database: "database.db".to_string(), @@ -67,12 +65,6 @@ pub fn get_config() -> Config { wolves_url: "".to_string(), }; - if let Ok(x) = env::var("LDAP_API") { - config.ldap_api = x.trim().to_string(); - } - if let Ok(x) = env::var("SKYNET_SERVER") { - config.skynet_server = GuildId::from(str_to_num::(&x)); - } if let Ok(x) = env::var("HOME") { config.home = x.trim().to_string(); } @@ -80,15 +72,11 @@ pub fn get_config() -> Config { config.database = x.trim().to_string(); } - if let Ok(x) = env::var("LDAP_DISCORD_AUTH") { - config.auth = x.trim().to_string(); - } - if let Ok(x) = env::var("DISCORD_TOKEN") { config.discord_token = x.trim().to_string(); } - if let Ok(x) = env::var("DISCORD_MINECRAFT") { - config.discord_minecraft = x.trim().to_string(); + if let Ok(x) = env::var("DISCORD_TOKEN_MINECRAFT") { + config.discord_token_minecraft = x.trim().to_string(); } if let Ok(x) = env::var("EMAIL_SMTP") { @@ -108,10 +96,6 @@ pub fn get_config() -> Config { config } -fn str_to_num(x: &str) -> T { - x.trim().parse::().unwrap_or_default() -} - #[derive(Debug, Clone, Deserialize, Serialize)] pub struct ServerMembers { pub server: GuildId, @@ -727,7 +711,7 @@ pub async fn update_server(server_id: &str, db: &Pool, g_id: &GuildId, c } } if !usernames.is_empty() { - whitelist_update(&usernames, server_id, &config.discord_minecraft).await; + whitelist_update(&usernames, server_id, &config.discord_token_minecraft).await; } }