Add desired config to AccountData
This commit is contained in:
45
src/lib.rs
45
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<Option<icq::protocol::SessionInfo>>,
|
||||
}
|
||||
@@ -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),
|
||||
});
|
||||
|
Reference in New Issue
Block a user