🔨 Refactors pass to generate LoginItem's

Signed-off-by: Ash Svitan <selfsigned-ash@proton.me>
This commit is contained in:
2026-04-30 20:16:43 +02:00
parent 631c807571
commit 15dd1722d4
3 changed files with 83 additions and 34 deletions
+41 -31
View File
@@ -41,47 +41,55 @@ fn main() -> Result<(), Error> {
}
};
let mut pass_items = pass::get_items(&vault)?.items;
println!("{:?}", pass_items[0]);
println!("{}", pass_items.len());
let pass_items = pass::get_items(&vault)?;
let mut pass_logins = pass::get_logins(pass_items);
println!("{:?}", pass_logins[0]);
println!("{}", pass_logins.len());
let rbw_items_partial = rbw::get_items()?;
let mut rbw_items = rbw::get_login_items(rbw_items_partial)?;
println!("{:?}", rbw_items[0]);
println!("{}", rbw_items.len());
let rbw_items = rbw::get_items()?;
let mut rbw_logins = rbw::get_logins(rbw_items)?;
println!("{:?}", rbw_logins[0]);
println!("{}", rbw_logins.len());
for rbw_item in rbw_items.clone().iter() {
let mut pass_item: Option<&pass::Item> = None;
for rbw_login in rbw_logins.clone().iter() {
let mut pass_login: Option<&pass::LoginItem> = None;
'inner: for pass_item_iter in pass_items.iter() {
if rbw_item.name == pass_item_iter.content.title {
println!("found match! {}", rbw_item.name);
pass_item = Some(pass_item_iter);
'inner: for pass_login_iter in pass_logins.iter() {
if rbw_login.name == pass_login_iter.title {
println!("found match! {}", rbw_login.name);
pass_login = Some(pass_login_iter);
break 'inner;
}
}
if let None = pass_item {
println!("no match found for {}!", rbw_item.name);
if let None = pass_login {
println!("no match found for {}!", rbw_login.name);
continue;
}
let pass_item = pass_item.unwrap();
let pass_login = pass_login.unwrap();
let rbw_password = rbw_login.password.clone();
let pass_password = pass_login.password.clone();
let rbw_user = rbw_login.user.clone();
let pass_user = match pass_login.username.is_empty() {
true => pass_login.email.clone(),
false => pass_login.username.clone(),
};
let pass_user_is_actually_email = pass_user == pass_login.email;
let rbw_password = rbw_item.password.clone();
let pass_password = pass_item
.clone()
.content
.content
.login
.clone()
.unwrap()
.password;
if rbw_password == pass_password {
let rbw_index = rbw_items.iter().position(|x| x.id == rbw_item.id).unwrap();
rbw_items.remove(rbw_index);
let rbw_index = rbw_logins
.iter()
.position(|x| x.id == rbw_login.id)
.unwrap();
rbw_logins.remove(rbw_index);
let pass_index = pass_items.iter().position(|x| x.id == pass_item.id).unwrap();
pass_items.remove(pass_index);
let pass_index = pass_logins
.iter()
.position(|x| x.id == pass_login.id)
.unwrap();
pass_logins.remove(pass_index);
continue;
} else {
println!(
@@ -91,8 +99,10 @@ fn main() -> Result<(), Error> {
}
}
println!("remaining {} rbw items", rbw_items.len());
println!("remaining {} pass items", pass_items.len());
println!("remaining {} rbw items", rbw_logins.len());
println!("{:?}", rbw_logins);
println!("remaining {} pass items", pass_logins.len());
println!("{:?}", pass_logins);
return Ok(());
}