From bace7ef138e229847de03622e2a13a3b15a05971 Mon Sep 17 00:00:00 2001 From: George Kaklamanos Date: Tue, 21 Nov 2023 21:30:56 +0200 Subject: [PATCH] Use struct for passing module arguments: matrix --- labadoor-matrix/src/lib.rs | 10 ++++++++-- labadoor/src/main.rs | 8 ++------ labadoor/src/to_config.rs | 11 +++++++++++ 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/labadoor-matrix/src/lib.rs b/labadoor-matrix/src/lib.rs index 0886d41..f5e96d6 100644 --- a/labadoor-matrix/src/lib.rs +++ b/labadoor-matrix/src/lib.rs @@ -12,6 +12,12 @@ use matrix_sdk::{ Client, }; +pub struct MatrixArgs { + pub username: String, + pub password: String, + pub device_id: Option, +} + fn open(param: String) { use std::io::{self, Write}; use std::process::Command; @@ -80,8 +86,8 @@ async fn client_login(username: String, password: String, device_id: Option) { - let client = client_login(username, password, device_id).await; +pub async fn matrix(args: MatrixArgs) { + let client = client_login(args.username, args.password, args.device_id).await; client.sync_once(SyncSettings::default()).await.unwrap(); client.add_event_handler(on_room_message); client.add_event_handler(on_room_invite); diff --git a/labadoor/src/main.rs b/labadoor/src/main.rs index 95a06b8..6f4e69d 100644 --- a/labadoor/src/main.rs +++ b/labadoor/src/main.rs @@ -18,12 +18,8 @@ fn main() { } #[cfg(feature = "matrix")] cli::Command::Matrix(_) => { - let matrix = config.get::("matrix").unwrap(); - labadoor_matrix::matrix( - matrix.username.unwrap(), - matrix.password.unwrap(), - matrix.device_id, - ); + let matrix = config.get::("matrix").unwrap().to_config(); + labadoor_matrix::matrix(matrix); } #[cfg(feature = "csv")] cli::Command::CSV(_) => { diff --git a/labadoor/src/to_config.rs b/labadoor/src/to_config.rs index 195c8c6..492baec 100644 --- a/labadoor/src/to_config.rs +++ b/labadoor/src/to_config.rs @@ -12,3 +12,14 @@ impl ToConfig for Telegram { } } } + +#[cfg(feature = "matrix")] +impl ToConfig for Matrix { + fn to_config(&self) -> labadoor_matrix::MatrixArgs { + labadoor_matrix::MatrixArgs { + username: self.username.clone().unwrap(), + password: self.password.clone().unwrap(), + device_id: self.device_id.clone(), + } + } +}