upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/accept_maintainership.rs2
-rw-r--r--src/lib/client.rs37
-rw-r--r--src/lib/login/fresh.rs2
-rw-r--r--src/lib/push.rs2
4 files changed, 36 insertions, 7 deletions
diff --git a/src/lib/accept_maintainership.rs b/src/lib/accept_maintainership.rs
index 086b858..3375ca3 100644
--- a/src/lib/accept_maintainership.rs
+++ b/src/lib/accept_maintainership.rs
@@ -149,7 +149,7 @@ pub async fn accept_maintainership_with_defaults(
149 149
150 client.set_signer(signer.clone()).await; 150 client.set_signer(signer.clone()).await;
151 151
152 send_events( 152 let _ = send_events(
153 client, 153 client,
154 Some(git_repo.get_path()?), 154 Some(git_repo.get_path()?),
155 vec![repo_event], 155 vec![repo_event],
diff --git a/src/lib/client.rs b/src/lib/client.rs
index 2a4e081..c5c38cf 100644
--- a/src/lib/client.rs
+++ b/src/lib/client.rs
@@ -2447,7 +2447,7 @@ pub async fn send_events(
2447 repo_read_relays: Vec<RelayUrl>, 2447 repo_read_relays: Vec<RelayUrl>,
2448 animate: bool, 2448 animate: bool,
2449 silent: bool, 2449 silent: bool,
2450) -> Result<()> { 2450) -> Result<Vec<(String, bool)>> {
2451 // Only include default relays as fallback when there are no repo relays 2451 // Only include default relays as fallback when there are no repo relays
2452 // (bootstrapping case, e.g. new account signup). When repo relays exist, 2452 // (bootstrapping case, e.g. new account signup). When repo relays exist,
2453 // trust the repo and user relay configuration. 2453 // trust the repo and user relay configuration.
@@ -2614,7 +2614,7 @@ pub async fn send_events(
2614 })?; 2614 })?;
2615 2615
2616 #[allow(clippy::borrow_deref_ref)] 2616 #[allow(clippy::borrow_deref_ref)]
2617 join_all(relays.iter().map(|&relay| { 2617 let relay_results: Vec<(String, bool)> = join_all(relays.iter().map(|&relay| {
2618 let reveal_state_clone = reveal_state.clone(); 2618 let reveal_state_clone = reveal_state.clone();
2619 let my_write_relays = my_write_relays.clone(); 2619 let my_write_relays = my_write_relays.clone();
2620 let repo_read_relays = repo_read_relays.clone(); 2620 let repo_read_relays = repo_read_relays.clone();
@@ -2691,6 +2691,7 @@ pub async fn send_events(
2691 pb.set_style(pb_after_style_succeeded.clone()); 2691 pb.set_style(pb_after_style_succeeded.clone());
2692 finish_bar(&pb, String::new(), &reveal_state_clone); 2692 finish_bar(&pb, String::new(), &reveal_state_clone);
2693 } 2693 }
2694 (relay_clean.to_string(), !failed)
2694 } 2695 }
2695 })) 2696 }))
2696 .await; 2697 .await;
@@ -2700,12 +2701,40 @@ pub async fn send_events(
2700 if let Some(handle) = timer_handle { 2701 if let Some(handle) = timer_handle {
2701 handle.abort(); 2702 handle.abort();
2702 } 2703 }
2704
2705 let succeeded_count = relay_results.iter().filter(|(_, ok)| *ok).count();
2706 let total_count = relay_results.len();
2707 let failed_relays: Vec<&str> = relay_results
2708 .iter()
2709 .filter(|(_, ok)| !*ok)
2710 .map(|(url, _)| {
2711 url.strip_prefix("wss://")
2712 .or_else(|| url.strip_prefix("ws://"))
2713 .unwrap_or(url)
2714 .trim_end_matches('/')
2715 })
2716 .collect();
2717
2718 let finish_message = if succeeded_count == total_count {
2719 format!("Published {events_description} to {total_count} relays")
2720 } else if succeeded_count > 0 {
2721 format!(
2722 "Published {events_description} to {succeeded_count}/{total_count} relays (failed: {})",
2723 failed_relays.join(" ")
2724 )
2725 } else {
2726 format!(
2727 "failed to publish {events_description} to any relay (failed: {})",
2728 failed_relays.join(" ")
2729 )
2730 };
2731
2703 if let Some((_, spinner)) = &spinner_multi { 2732 if let Some((_, spinner)) = &spinner_multi {
2704 spinner.set_style(ProgressStyle::with_template("{msg}").unwrap()); 2733 spinner.set_style(ProgressStyle::with_template("{msg}").unwrap());
2705 spinner.finish_with_message(format!("Published {events_description} to nostr relays")); 2734 spinner.finish_with_message(finish_message);
2706 } 2735 }
2707 2736
2708 Ok(()) 2737 Ok(relay_results)
2709} 2738}
2710 2739
2711/// Builds a human-readable description of what is being published, e.g. 2740/// Builds a human-readable description of what is being published, e.g.
diff --git a/src/lib/login/fresh.rs b/src/lib/login/fresh.rs
index 2f6becf..e81b74a 100644
--- a/src/lib/login/fresh.rs
+++ b/src/lib/login/fresh.rs
@@ -810,7 +810,7 @@ pub async fn signup_non_interactive(
810 save_event_in_global_cache(git_repo_path, &relay_list).await?; 810 save_event_in_global_cache(git_repo_path, &relay_list).await?;
811 811
812 if publish { 812 if publish {
813 send_events( 813 let _ = send_events(
814 client, 814 client,
815 git_repo_path, 815 git_repo_path,
816 vec![profile, relay_list], 816 vec![profile, relay_list],
diff --git a/src/lib/push.rs b/src/lib/push.rs
index 5544066..7374fb0 100644
--- a/src/lib/push.rs
+++ b/src/lib/push.rs
@@ -665,7 +665,7 @@ pub async fn select_servers_push_refs_and_generate_pr_or_pr_update_event(
665 }; 665 };
666 // pubish event to my-relays and my-fork-relays 666 // pubish event to my-relays and my-fork-relays
667 new_grasp_server_events.push(updated_user_repo_ref.to_event(signer).await?); 667 new_grasp_server_events.push(updated_user_repo_ref.to_event(signer).await?);
668 send_events( 668 let _ = send_events(
669 client, 669 client,
670 Some(git_repo_path), 670 Some(git_repo_path),
671 new_grasp_server_events, 671 new_grasp_server_events,