diff options
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/accept_maintainership.rs | 2 | ||||
| -rw-r--r-- | src/lib/client.rs | 37 | ||||
| -rw-r--r-- | src/lib/login/fresh.rs | 2 | ||||
| -rw-r--r-- | src/lib/push.rs | 2 |
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, |