chore: cleanup unused config properties
This commit is contained in:
parent
2acb319821
commit
72e171b960
6 changed files with 23 additions and 152 deletions
|
@ -1,15 +1,7 @@
|
||||||
use crate::required_var;
|
use std::str::FromStr;
|
||||||
|
|
||||||
use color_eyre::eyre::{Context as _, Result};
|
|
||||||
use log::*;
|
use log::*;
|
||||||
use poise::serenity_prelude::{ApplicationId, ChannelId};
|
use poise::serenity_prelude::ChannelId;
|
||||||
use url::Url;
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct RefractionOAuth2 {
|
|
||||||
pub redirect_uri: Url,
|
|
||||||
pub scope: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone, Default)]
|
#[derive(Debug, Clone, Default)]
|
||||||
pub struct RefractionChannels {
|
pub struct RefractionChannels {
|
||||||
|
@ -18,70 +10,33 @@ pub struct RefractionChannels {
|
||||||
|
|
||||||
#[derive(Debug, Clone, Default)]
|
#[derive(Debug, Clone, Default)]
|
||||||
pub struct DiscordConfig {
|
pub struct DiscordConfig {
|
||||||
pub client_id: ApplicationId,
|
|
||||||
pub client_secret: String,
|
|
||||||
pub bot_token: String,
|
|
||||||
pub oauth2: RefractionOAuth2,
|
|
||||||
pub channels: RefractionChannels,
|
pub channels: RefractionChannels,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for RefractionOAuth2 {
|
|
||||||
fn default() -> Self {
|
|
||||||
Self {
|
|
||||||
scope: "identify connections role_connections.write".to_string(),
|
|
||||||
redirect_uri: Url::parse("https://google.com").unwrap(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl RefractionOAuth2 {
|
|
||||||
pub fn new_from_env() -> Result<Self> {
|
|
||||||
let unparsed = format!("{}/oauth2/callback", required_var!("PUBLIC_URI"));
|
|
||||||
let redirect_uri = Url::parse(&unparsed)?;
|
|
||||||
|
|
||||||
debug!("OAuth2 Redirect URI is {redirect_uri}");
|
|
||||||
Ok(Self {
|
|
||||||
redirect_uri,
|
|
||||||
..Default::default()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl RefractionChannels {
|
impl RefractionChannels {
|
||||||
pub fn new_from_env() -> Result<Self> {
|
pub fn new_from_env() -> Self {
|
||||||
let unparsed = std::env::var("DISCORD_SAY_LOG_CHANNELID");
|
let say_log_channel_id = Self::get_channel_from_env("DISCORD_SAY_LOG_CHANNELID");
|
||||||
if let Ok(unparsed) = unparsed {
|
|
||||||
let id = unparsed.parse::<u64>()?;
|
|
||||||
let channel_id = ChannelId::from(id);
|
|
||||||
|
|
||||||
debug!("Log channel is {id}");
|
if let Some(channel_id) = say_log_channel_id {
|
||||||
Ok(Self {
|
info!("Log channel is {channel_id}");
|
||||||
say_log_channel_id: Some(channel_id),
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
warn!("DISCORD_SAY_LOG_CHANNELID is empty; this will disable logging in your server.");
|
warn!("DISCORD_SAY_LOG_CHANNELID is empty; this will disable logging in your server.");
|
||||||
Ok(Self {
|
|
||||||
say_log_channel_id: None,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Self { say_log_channel_id }
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_channel_from_env(var: &str) -> Option<ChannelId> {
|
||||||
|
std::env::var(var)
|
||||||
|
.ok()
|
||||||
|
.and_then(|env_var| ChannelId::from_str(&env_var).ok())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DiscordConfig {
|
impl DiscordConfig {
|
||||||
pub fn new_from_env() -> Result<Self> {
|
pub fn new_from_env() -> Self {
|
||||||
let unparsed_client = required_var!("DISCORD_CLIENT_ID").parse::<u64>()?;
|
let channels = RefractionChannels::new_from_env();
|
||||||
let client_id = ApplicationId::from(unparsed_client);
|
|
||||||
let client_secret = required_var!("DISCORD_CLIENT_SECRET");
|
|
||||||
let bot_token = required_var!("DISCORD_BOT_TOKEN");
|
|
||||||
let oauth2 = RefractionOAuth2::new_from_env()?;
|
|
||||||
let channels = RefractionChannels::new_from_env()?;
|
|
||||||
|
|
||||||
Ok(Self {
|
Self { channels }
|
||||||
client_id,
|
|
||||||
client_secret,
|
|
||||||
bot_token,
|
|
||||||
oauth2,
|
|
||||||
channels,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
use color_eyre::eyre::{Context as _, Result};
|
|
||||||
|
|
||||||
use crate::required_var;
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct RefractionRepo {
|
|
||||||
pub owner: String,
|
|
||||||
pub repo: String,
|
|
||||||
pub key: String,
|
|
||||||
pub name: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
|
||||||
pub struct GithubConfig {
|
|
||||||
pub token: String,
|
|
||||||
pub repos: Vec<RefractionRepo>,
|
|
||||||
pub cache_sec: u16,
|
|
||||||
pub update_cron_job: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Default for GithubConfig {
|
|
||||||
fn default() -> Self {
|
|
||||||
let owner = "PrismLauncher".to_string();
|
|
||||||
let repos = Vec::<RefractionRepo>::from([
|
|
||||||
RefractionRepo {
|
|
||||||
owner: owner.clone(),
|
|
||||||
repo: "PrismLauncher".to_string(),
|
|
||||||
key: "launcher".to_string(),
|
|
||||||
name: "Launcher contributor".to_string(),
|
|
||||||
},
|
|
||||||
RefractionRepo {
|
|
||||||
owner: owner.clone(),
|
|
||||||
repo: "prismlauncher.org".to_string(),
|
|
||||||
|
|
||||||
key: "website".to_string(),
|
|
||||||
name: "Web developer".to_string(),
|
|
||||||
},
|
|
||||||
RefractionRepo {
|
|
||||||
owner: owner.clone(),
|
|
||||||
repo: "Translations".to_string(),
|
|
||||||
|
|
||||||
key: "translations".to_string(),
|
|
||||||
name: "Translator".to_string(),
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
|
|
||||||
Self {
|
|
||||||
repos,
|
|
||||||
cache_sec: 3600,
|
|
||||||
update_cron_job: "0 */10 * * * *".to_string(), // every 10 minutes
|
|
||||||
token: String::default(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl GithubConfig {
|
|
||||||
pub fn new_from_env() -> Result<Self> {
|
|
||||||
let token = required_var!("GITHUB_TOKEN");
|
|
||||||
|
|
||||||
Ok(Self {
|
|
||||||
token,
|
|
||||||
..Default::default()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +1,9 @@
|
||||||
use color_eyre::eyre::Result;
|
|
||||||
|
|
||||||
mod discord;
|
mod discord;
|
||||||
mod github;
|
use discord::DiscordConfig;
|
||||||
|
|
||||||
pub use discord::*;
|
|
||||||
pub use github::*;
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
pub discord: DiscordConfig,
|
pub discord: DiscordConfig,
|
||||||
pub github: GithubConfig,
|
|
||||||
pub http_port: u16,
|
|
||||||
pub redis_url: String,
|
pub redis_url: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,22 +11,18 @@ impl Default for Config {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
discord: DiscordConfig::default(),
|
discord: DiscordConfig::default(),
|
||||||
github: GithubConfig::default(),
|
|
||||||
http_port: 3000,
|
|
||||||
redis_url: "redis://localhost:6379".to_string(),
|
redis_url: "redis://localhost:6379".to_string(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Config {
|
impl Config {
|
||||||
pub fn new_from_env() -> Result<Self> {
|
pub fn new_from_env() -> Self {
|
||||||
let discord = DiscordConfig::new_from_env()?;
|
let discord = DiscordConfig::new_from_env();
|
||||||
let github = GithubConfig::new_from_env()?;
|
|
||||||
|
|
||||||
Ok(Self {
|
Self {
|
||||||
discord,
|
discord,
|
||||||
github,
|
|
||||||
..Default::default()
|
..Default::default()
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ pub struct Data {
|
||||||
|
|
||||||
impl Data {
|
impl Data {
|
||||||
pub fn new() -> Result<Self> {
|
pub fn new() -> Result<Self> {
|
||||||
let config = Config::new_from_env()?;
|
let config = Config::new_from_env();
|
||||||
let storage = Storage::new(&config.redis_url)?;
|
let storage = Storage::new(&config.redis_url)?;
|
||||||
let octocrab = octocrab::instance();
|
let octocrab = octocrab::instance();
|
||||||
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
#[macro_export]
|
|
||||||
macro_rules! required_var {
|
|
||||||
($name: expr) => {
|
|
||||||
std::env::var($name).wrap_err_with(|| format!("Couldn't find {} in environment!", $name))?
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,8 +1,6 @@
|
||||||
use color_eyre::eyre::{eyre, Result};
|
use color_eyre::eyre::{eyre, Result};
|
||||||
use rand::seq::SliceRandom;
|
use rand::seq::SliceRandom;
|
||||||
|
|
||||||
#[macro_use]
|
|
||||||
mod macros;
|
|
||||||
mod resolve_message;
|
mod resolve_message;
|
||||||
|
|
||||||
pub use resolve_message::resolve as resolve_message;
|
pub use resolve_message::resolve as resolve_message;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue