update community backend
This commit is contained in:
@@ -142,31 +142,41 @@ where
|
||||
|
||||
/// Best-effort publication of the genesis wraps to the community's relays.
|
||||
async fn publish_wraps(client: &Client, wraps: &[Event], relays: &[RelayUrl]) {
|
||||
for url in relays {
|
||||
if let Err(error) = client.add_relay(url).and_connect().await {
|
||||
log::warn!("community genesis: failed to add relay {url}: {error}");
|
||||
}
|
||||
}
|
||||
connect_relays(client, relays).await;
|
||||
|
||||
for wrap in wraps {
|
||||
let sent = if relays.is_empty() {
|
||||
client.send_event(wrap).broadcast().await
|
||||
} else {
|
||||
client.send_event(wrap).to(relays.iter().cloned()).await
|
||||
};
|
||||
publish_wrap(client, wrap, relays).await;
|
||||
}
|
||||
}
|
||||
|
||||
match sent {
|
||||
Ok(output) if output.failed.is_empty() => {}
|
||||
Ok(output) => log::warn!(
|
||||
"community genesis: {} relay(s) rejected {}",
|
||||
output.failed.len(),
|
||||
wrap.id
|
||||
),
|
||||
Err(error) => log::warn!("community genesis: publishing {} failed: {error}", wrap.id),
|
||||
/// Bring the community's relays into the pool before anything is sent through them.
|
||||
pub(crate) async fn connect_relays(client: &Client, relays: &[RelayUrl]) {
|
||||
for url in relays {
|
||||
if let Err(error) = client.add_relay(url).and_connect().await {
|
||||
log::warn!("community: failed to add relay {url}: {error}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Best-effort publication of a single wrap to the community's relays.
|
||||
pub(crate) async fn publish_wrap(client: &Client, wrap: &Event, relays: &[RelayUrl]) {
|
||||
let sent = if relays.is_empty() {
|
||||
client.send_event(wrap).broadcast().await
|
||||
} else {
|
||||
client.send_event(wrap).to(relays.iter().cloned()).await
|
||||
};
|
||||
|
||||
match sent {
|
||||
Ok(output) if output.failed.is_empty() => {}
|
||||
Ok(output) => log::warn!(
|
||||
"community: {} relay(s) rejected {}",
|
||||
output.failed.len(),
|
||||
wrap.id
|
||||
),
|
||||
Err(error) => log::warn!("community: publishing {} failed: {error}", wrap.id),
|
||||
}
|
||||
}
|
||||
|
||||
async fn record_membership<S>(
|
||||
client: &Client,
|
||||
signer: &S,
|
||||
|
||||
Reference in New Issue
Block a user