This commit is contained in:
2026-03-18 15:20:54 +07:00
parent d53af98feb
commit 4651221ded
2 changed files with 33 additions and 36 deletions

View File

@@ -13,7 +13,6 @@ use state::{NostrRegistry, TIMEOUT};
use crate::NewMessage;
const NO_RELAY: &str = "User hasn't set up any messaging relays yet.";
const NO_DEKEY: &str = "User hasn't set up a decoupled encryption key yet.";
const USER_NO_DEKEY: &str = "You haven't set up a decoupled encryption key or it's not available.";
@@ -501,16 +500,9 @@ impl Room {
// Process each member
for member in members {
let relays = member.messaging_relays();
let announcement = member.announcement();
let public_key = member.public_key();
// Skip members with no relays
if relays.is_empty() {
reports.push(SendReport::new(public_key).error(NO_RELAY));
continue;
}
// Handle encryption signer requirements
if signer_kind.encryption() {
// Receiver didn't set up a decoupled encryption key
@@ -546,7 +538,7 @@ impl Room {
};
// Send the gift wrap event and collect the report
match send_gift_wrap(&client, &signer, &member, &rumor, signer_kind, relays).await {
match send_gift_wrap(&client, &signer, &member, &rumor, signer_kind).await {
Ok(report) => {
reports.push(report);
sents += 1;
@@ -561,7 +553,6 @@ impl Room {
// Send backup to current user if needed
if backup && sents >= 1 {
let public_key = sender.public_key();
let relays = sender.messaging_relays();
// Determine the signer to use
let signer = match signer_kind {
@@ -582,7 +573,7 @@ impl Room {
SignerKind::User => user_signer.clone(),
};
match send_gift_wrap(&client, &signer, &sender, &rumor, signer_kind, relays).await {
match send_gift_wrap(&client, &signer, &sender, &rumor, signer_kind).await {
Ok(report) => reports.push(report),
Err(error) => {
let report = SendReport::new(public_key).error(error.to_string());
@@ -603,7 +594,6 @@ async fn send_gift_wrap<T>(
receiver: &Person,
rumor: &UnsignedEvent,
config: &SignerKind,
to: &[RelayUrl],
) -> Result<SendReport, Error>
where
T: NostrSigner + 'static,
@@ -634,15 +624,10 @@ where
// Construct the gift wrap event
let event = EventBuilder::gift_wrap(signer, &receiver, rumor.clone(), extra_tags).await?;
// Connect to each relay before sending
for url in to.iter() {
client.add_relay(url).and_connect().await.ok();
}
// Send the gift wrap event and collect the report
let report = client
.send_event(&event)
.to(to)
.to_nip17()
.ack_policy(AckPolicy::none())
.await
.map(|output| {