socket-bot/ica-rs/src/config.rs

43 lines
1.2 KiB
Rust
Raw Normal View History

use std::env;
use std::fs;
use serde::Deserialize;
2024-02-20 17:15:14 +08:00
use toml::from_str;
/// Icalingua bot 的配置
2024-02-20 17:47:45 +08:00
#[derive(Debug, Clone, Deserialize)]
pub struct IcaConfig {
/// icalingua 私钥
pub private_key: String,
/// icalingua 服务器地址
pub host: String,
/// bot 的 qq
pub self_id: u64,
/// 提醒的房间
pub notice_room: Vec<i64>,
/// 是否提醒
pub notice_start: bool,
/// 管理员列表
pub admin_list: Vec<i64>,
2024-02-22 23:17:20 +08:00
/// 过滤列表
pub filter_list: Vec<i64>,
/// Python 插件路径
2024-02-20 20:11:25 +08:00
pub py_plugin_path: Option<String>,
2024-02-25 18:49:39 +08:00
/// Python 配置文件路径
pub py_config_path: Option<String>,
}
impl IcaConfig {
pub fn new_from_path(config_file_path: String) -> Self {
// try read config from file
let config = fs::read_to_string(&config_file_path).expect("Failed to read config file");
2024-02-20 17:15:14 +08:00
let ret: Self = from_str(&config)
.expect(format!("Failed to parse config file {}", &config_file_path).as_str());
ret
}
pub fn new_from_cli() -> Self {
let config_file_path = env::args().nth(1).expect("No config path given");
Self::new_from_path(config_file_path)
}
}