mirror of
http://shenjack.top:5100/shenjack/icalingua-python-bot.git
synced 2024-11-24 04:55:06 +08:00
36 lines
991 B
Rust
36 lines
991 B
Rust
|
use std::env;
|
||
|
use std::fs;
|
||
|
|
||
|
use serde::Deserialize;
|
||
|
use toml;
|
||
|
|
||
|
#[derive(Debug, 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: Option<bool>,
|
||
|
/// Python 插件路径
|
||
|
pub py_plugin_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");
|
||
|
let ret: Self = toml::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)
|
||
|
}
|
||
|
}
|