chore: Returns the relays that successfully received the event on NostrClient::send_event_to

Signed-off-by: Awiteb <a@4rs.nl>
This commit is contained in:
Awiteb
2025-05-08 13:01:05 +00:00
parent c69fbca2a0
commit 42508fc8b9

View File

@@ -82,14 +82,18 @@ impl NostrClient {
}
}
/// Sends an event to the specified relays.
/// Broadcasts an unsigned event to given relays, optionally broadcast the
/// relays list event. Returns URLs of relays that successfully received
/// the event.
pub async fn send_event_to(
&self,
event: UnsignedEvent,
mut event: UnsignedEvent,
relays_list: Option<&Event>,
relays: &[RelayUrl],
) -> N34Result<()> {
) -> N34Result<Vec<RelayUrl>> {
event.ensure_id();
self.add_relays(relays).await;
let event_id = event.id.expect("It's there");
if let Some(event) = relays_list {
let _ = self.client.send_event_to(relays, event).await;
@@ -101,12 +105,13 @@ impl NostrClient {
.await?;
for relay in &result.success {
tracing::info!(relay = %relay, "Event sent successfully");
tracing::info!(event_id = %event_id, relay = %relay, "Event sent successfully");
}
for (relay, reason) in &result.failed {
tracing::warn!(relay = %relay, reason = %reason, "Failed to send event");
tracing::warn!(event_id = %event_id, relay = %relay, reason = %reason, "Failed to send event");
}
Ok(())
Ok(result.success.into_iter().collect())
}
/// Try to fetch a repository and returns it