From d8f4f7641312bff32f772cbc070b3f99ced0c8fe Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Mon, 9 Dec 2024 15:35:18 +0000 Subject: fix: fetch user relays for `send`,`push` & `init` get the latest user relay list before pushing patches and repo announcement events --- src/lib/login/user.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/lib/login/user.rs') diff --git a/src/lib/login/user.rs b/src/lib/login/user.rs index 1898a1f..c13cdf5 100644 --- a/src/lib/login/user.rs +++ b/src/lib/login/user.rs @@ -60,8 +60,23 @@ pub async fn get_user_details( #[cfg(not(test))] client: Option<&Client>, git_repo_path: Option<&Path>, cache_only: bool, + fetch_profile_updates: bool, ) -> Result { if let Ok(user_ref) = get_user_ref_from_cache(git_repo_path, public_key).await { + if fetch_profile_updates { + if let Some(client) = client { + let term = console::Term::stderr(); + term.write_line("searching for profile updates...")?; + let (reports, progress_reporter) = client + .fetch_all(git_repo_path, None, &HashSet::from_iter(vec![*public_key])) + .await?; + if !reports.iter().any(|r| r.is_err()) { + progress_reporter.clear()?; + term.clear_last_lines(1)?; + } + return get_user_ref_from_cache(git_repo_path, public_key).await; + } + } Ok(user_ref) } else { let empty = UserRef { -- cgit v1.2.3