From bca86f115f328494600a360bf15fcaade5b72bd7 Mon Sep 17 00:00:00 2001
From: Awiteb
Date: Tue, 27 May 2025 12:00:10 +0000
Subject: [PATCH] perf(NostrClient::send_event_to): Join the event sending
Signed-off-by: Awiteb
---
src/nostr_utils/mod.rs | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/src/nostr_utils/mod.rs b/src/nostr_utils/mod.rs
index 0e9bdc6..a25a6b6 100644
--- a/src/nostr_utils/mod.rs
+++ b/src/nostr_utils/mod.rs
@@ -162,18 +162,24 @@ impl NostrClient {
relays_list: Option<&Event>,
relays: &[RelayUrl],
) -> N34Result> {
- event.ensure_id();
self.add_relays(relays).await;
- let event_id = event.id.expect("It's there");
+ let event_id = event.id();
- if let Some(event) = relays_list {
- let _ = self.client.send_event_to(relays, event).await;
- }
-
- let result = self
- .client
- .send_event_to(relays, &event.sign(&self.client.signer().await?).await?)
- .await?;
+ let (result, ..) = futures::join!(
+ async {
+ N34Result::Ok(
+ self.client
+ .send_event_to(relays, &event.sign(&self.client.signer().await?).await?)
+ .await?,
+ )
+ },
+ async {
+ if let Some(event) = relays_list {
+ let _ = self.client.send_event_to(relays, event).await;
+ }
+ }
+ );
+ let result = result?;
for relay in &result.success {
tracing::info!(event_id = %event_id, relay = %relay, "Event sent successfully");