upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/client.rs b/src/client.rs
index 9aa574d..237ff24 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -16,7 +16,9 @@ use futures::stream::{self, StreamExt};
16#[cfg(test)] 16#[cfg(test)]
17use mockall::*; 17use mockall::*;
18use nostr::Event; 18use nostr::Event;
19use nostr_sdk::ClientSigner;
19 20
21#[allow(clippy::struct_field_names)]
20pub struct Client { 22pub struct Client {
21 client: nostr_sdk::Client, 23 client: nostr_sdk::Client,
22 fallback_relays: Vec<String>, 24 fallback_relays: Vec<String>,
@@ -87,7 +89,9 @@ impl Connect for Client {
87 } 89 }
88 90
89 async fn set_keys(&mut self, keys: &nostr::Keys) { 91 async fn set_keys(&mut self, keys: &nostr::Keys) {
90 self.client.set_keys(keys).await; 92 self.client
93 .set_signer(Some(ClientSigner::Keys(keys.clone())))
94 .await;
91 } 95 }
92 96
93 async fn disconnect(&self) -> Result<()> { 97 async fn disconnect(&self) -> Result<()> {
@@ -104,7 +108,7 @@ impl Connect for Client {
104 } 108 }
105 109
106 async fn send_event_to(&self, url: &str, event: Event) -> Result<nostr::EventId> { 110 async fn send_event_to(&self, url: &str, event: Event) -> Result<nostr::EventId> {
107 self.client.add_relay(url, None).await?; 111 self.client.add_relay(url).await?;
108 self.client.connect_relay(url).await?; 112 self.client.connect_relay(url).await?;
109 Ok(self.client.send_event_to(url, event).await?) 113 Ok(self.client.send_event_to(url, event).await?)
110 } 114 }
@@ -117,7 +121,7 @@ impl Connect for Client {
117 // add relays 121 // add relays
118 for relay in &relays { 122 for relay in &relays {
119 self.client 123 self.client
120 .add_relay(relay.as_str(), None) 124 .add_relay(relay.as_str())
121 .await 125 .await
122 .context("cannot add relay")?; 126 .context("cannot add relay")?;
123 } 127 }
@@ -134,10 +138,6 @@ impl Connect for Client {
134 ) 138 )
135 }) 139 })
136 .map(|(relay, filters)| async { 140 .map(|(relay, filters)| async {
137 if !relay.is_connected().await {
138 relay.connect(false).await;
139 }
140
141 match get_events_of(relay, filters).await { 141 match get_events_of(relay, filters).await {
142 Err(error) => { 142 Err(error) => {
143 println!("{} {}", error, relay.url()); 143 println!("{} {}", error, relay.url());
@@ -159,7 +159,9 @@ async fn get_events_of(
159 filters: Vec<nostr::Filter>, 159 filters: Vec<nostr::Filter>,
160) -> Result<Vec<Event>> { 160) -> Result<Vec<Event>> {
161 println!("fetching from {}", relay.url()); 161 println!("fetching from {}", relay.url());
162 162 if !relay.is_connected().await {
163 relay.connect(None).await;
164 }
163 let events = relay 165 let events = relay
164 .get_events_of( 166 .get_events_of(
165 filters, 167 filters,