Configurable home server + misc changes
This commit is contained in:
parent
ec7268f645
commit
5e0a7f04eb
@ -7,6 +7,7 @@ pub struct ConfigLogin {
|
|||||||
pub username: String,
|
pub username: String,
|
||||||
pub password: String,
|
pub password: String,
|
||||||
pub device_id: String,
|
pub device_id: String,
|
||||||
|
pub home_server_url: String
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for ConfigLogin {
|
impl Default for ConfigLogin {
|
||||||
@ -15,6 +16,7 @@ impl Default for ConfigLogin {
|
|||||||
username: "".to_string(),
|
username: "".to_string(),
|
||||||
password: "".to_string(),
|
password: "".to_string(),
|
||||||
device_id: "".to_string(),
|
device_id: "".to_string(),
|
||||||
|
home_server_url: "".to_string()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
43
src/main.rs
43
src/main.rs
@ -13,7 +13,7 @@ use config::{ConfigImages, ConfigLogin};
|
|||||||
mod settings;
|
mod settings;
|
||||||
use settings::Settings;
|
use settings::Settings;
|
||||||
|
|
||||||
const HOME_SERVER: &str = "https://e1m1.xyz";
|
// TODO 16.06.2021: Use token for login in the future.
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
@ -33,14 +33,7 @@ async fn run() -> Result<(), Box<std::io::Error>> {
|
|||||||
let dir_login = &dir_exe.join("login.json");
|
let dir_login = &dir_exe.join("login.json");
|
||||||
let dir_images = &dir_exe.join("images.json");
|
let dir_images = &dir_exe.join("images.json");
|
||||||
|
|
||||||
let settings_login: Settings<ConfigLogin> =
|
// --- DEBUG STUFF / LAUNCH ARGS PARSER ---
|
||||||
Settings::<ConfigLogin>::load(&dir_login).unwrap();
|
|
||||||
|
|
||||||
let mut settings_images: Settings<ConfigImages> =
|
|
||||||
Settings::<ConfigImages>::load(&dir_images).unwrap();
|
|
||||||
|
|
||||||
let conf_login = &settings_login.loaded;
|
|
||||||
let conf_images = &mut settings_images.loaded;
|
|
||||||
|
|
||||||
let mut flag_debug: bool = false;
|
let mut flag_debug: bool = false;
|
||||||
let mut flag_generate: bool = false;
|
let mut flag_generate: bool = false;
|
||||||
@ -59,6 +52,12 @@ async fn run() -> Result<(), Box<std::io::Error>> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !dir_login.exists() || !dir_images.exists() {
|
||||||
|
flag_generate = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- END DEBUG ---
|
||||||
|
|
||||||
if flag_generate {
|
if flag_generate {
|
||||||
println!("Generating config files..");
|
println!("Generating config files..");
|
||||||
Settings::<ConfigLogin>::new(ConfigLogin::default())
|
Settings::<ConfigLogin>::new(ConfigLogin::default())
|
||||||
@ -69,16 +68,19 @@ async fn run() -> Result<(), Box<std::io::Error>> {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
.save(&dir_images.with_extension("json.template").clone())
|
.save(&dir_images.with_extension("json.template").clone())
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Ok(client) = login(
|
let settings_login: Settings<ConfigLogin> =
|
||||||
conf_login.username.as_str(),
|
Settings::<ConfigLogin>::load(&dir_login).unwrap();
|
||||||
conf_login.password.as_str(),
|
|
||||||
conf_login.device_id.as_str(),
|
let mut settings_images: Settings<ConfigImages> =
|
||||||
)
|
Settings::<ConfigImages>::load(&dir_images).unwrap();
|
||||||
.await
|
|
||||||
|
let conf_login = &settings_login.loaded;
|
||||||
|
let conf_images = &mut settings_images.loaded;
|
||||||
|
|
||||||
|
if let Ok(client) = login(&conf_login).await
|
||||||
{
|
{
|
||||||
let selection = {
|
let selection = {
|
||||||
if flag_debug {
|
if flag_debug {
|
||||||
@ -130,15 +132,12 @@ async fn run() -> Result<(), Box<std::io::Error>> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn login(
|
async fn login(config: &ConfigLogin
|
||||||
username: &str,
|
|
||||||
password: &str,
|
|
||||||
device_id: &str,
|
|
||||||
) -> Result<Client, matrix_sdk::Error> {
|
) -> Result<Client, matrix_sdk::Error> {
|
||||||
let client = Client::new(Url::parse(HOME_SERVER).unwrap()).unwrap();
|
let client = Client::new(Url::parse(config.home_server_url.as_str()).unwrap()).unwrap();
|
||||||
|
|
||||||
match client
|
match client
|
||||||
.login(username, password, Some(device_id), Some("NEO bot"))
|
.login(config.username.as_str(), config.password.as_str(), Some(config.device_id.as_str()), Some("NEO bot"))
|
||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(_) => return Ok(client),
|
Ok(_) => return Ok(client),
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user