From 320201271b476e75ed723852359cad6584e336aa Mon Sep 17 00:00:00 2001 From: Nick Thomas Date: Sat, 10 Apr 2021 18:28:57 +0100 Subject: [PATCH] Add desired config to AccountData --- src/lib.rs | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 02611b3..b5a1a2c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -80,7 +80,19 @@ pub struct MsgInfo { #[derive(Debug, Default)] pub struct AccountData { - phone_number: String, + display_name: String, + imap_host: String, + imap_port: i32, + imap_user: String, + imap_pass: String, + smtp_host: String, + smtp_port: i32, + smtp_user: String, + smtp_pass: String, + bcc_self: bool, + + // Not exposed: server_flags, selfstatus, e2ee_enabled + session_closed: AtomicBool, // session: RwLock>, } @@ -128,6 +140,7 @@ impl purple::PrplPlugin for PurpleDelta { context .with_info(info) + .with_password() .enable_login() .enable_load() .enable_close() @@ -148,9 +161,35 @@ impl purple::PrplPlugin for PurpleDelta { impl purple::LoginHandler for PurpleDelta { fn login(&mut self, account: &mut Account) { - let phone_number = account.get_username().unwrap().into(); + let display_name = account.get_string("displayname", ""); + + let imap_host = account.get_string("mail_server", ""); + let imap_port = account.get_int("mail_port", 0); + let imap_user = account.get_username().unwrap().into(); + let imap_pass = account.get_password().unwrap().into(); + + let smtp_host = account.get_string("send_server", ""); + let smtp_port = account.get_int("send_port", 0); + let smtp_user = account.get_string("send_user", ""); + let smtp_pass = account.get_string("send_pw", ""); + + let bcc_self = account.get_bool("bcc_self", false); + let protocol_data: AccountDataBox = Arc::new(AccountData { - phone_number, + display_name, + + imap_host, + imap_port, + imap_user, + imap_pass, + + smtp_host, + smtp_port, + smtp_user, + smtp_pass, + + bcc_self, + session_closed: AtomicBool::new(false), // session: RwLock::new(None), });