diff options
Diffstat (limited to 'src/client.rs')
| -rw-r--r-- | src/client.rs | 18 |
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)] |
| 17 | use mockall::*; | 17 | use mockall::*; |
| 18 | use nostr::Event; | 18 | use nostr::Event; |
| 19 | use nostr_sdk::ClientSigner; | ||
| 19 | 20 | ||
| 21 | #[allow(clippy::struct_field_names)] | ||
| 20 | pub struct Client { | 22 | pub 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, |