Move config to a separate module

This commit is contained in:
lemonsh 2022-07-15 17:58:45 +02:00
parent 2968081358
commit 3299807172
3 changed files with 33 additions and 30 deletions

View file

@ -1,19 +1,11 @@
# IRC config
[irc]
host = "karx.xyz"
port = 6697
username = "uberbot"
channels = ["#main", "#no-normies"]
mode = "+B"
# Spotify config
spotify_client_id = ""
spotify_client_secret = ""
# Bot config
prefix = "!"
# Web service config
http_listen = "127.0.0.1:8080"
# Git webhook config
git_channel = "#main"
[spotify]
spotify_client_id = ""
spotify_client_secret = ""

27
src/config.rs Normal file
View file

@ -0,0 +1,27 @@
use std::net::SocketAddr;
use serde::Deserialize;
#[derive(Deserialize)]
pub struct UberConfig {
pub irc: IrcConfig,
pub spotify: SpotifyConfig, // TODO: make optional
pub db_path: Option<String>,
}
#[derive(Deserialize)]
pub struct SpotifyConfig {
pub spotify_client_id: String,
pub spotify_client_secret: String,
}
#[derive(Deserialize)]
pub struct IrcConfig {
pub channels: Vec<String>,
pub host: String,
pub tls: bool,
pub mode: Option<String>,
pub nickname: Option<String>,
pub port: u16,
pub username: String,
pub prefix: String,
}

View file

@ -25,6 +25,8 @@ use crate::database::{DbExecutor, ExecutorConnection, Quote};
mod bots;
mod database;
mod bot;
mod config;
// this will be displayed when the help command is used
const HELP: &[&str] = &[
@ -65,24 +67,6 @@ pub struct AppState {
db: ExecutorConnection,
}
#[derive(Deserialize)]
struct ClientConf {
channels: Vec<String>,
host: String,
tls: bool,
mode: Option<String>,
nickname: Option<String>,
port: u16,
username: String,
spotify_client_id: String,
spotify_client_secret: String,
prefix: String,
db_path: Option<String>,
// reserved for future
_http_listen: Option<SocketAddr>,
_git_channel: String,
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
tracing_subscriber::fmt()