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.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/client.rs b/src/client.rs
index 97cb856..9bc171a 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -26,6 +26,7 @@ pub struct Client {
26 client: nostr_sdk::Client, 26 client: nostr_sdk::Client,
27 fallback_relays: Vec<String>, 27 fallback_relays: Vec<String>,
28 more_fallback_relays: Vec<String>, 28 more_fallback_relays: Vec<String>,
29 blaster_relays: Vec<String>,
29} 30}
30 31
31#[cfg_attr(test, automock)] 32#[cfg_attr(test, automock)]
@@ -37,6 +38,7 @@ pub trait Connect {
37 async fn disconnect(&self) -> Result<()>; 38 async fn disconnect(&self) -> Result<()>;
38 fn get_fallback_relays(&self) -> &Vec<String>; 39 fn get_fallback_relays(&self) -> &Vec<String>;
39 fn get_more_fallback_relays(&self) -> &Vec<String>; 40 fn get_more_fallback_relays(&self) -> &Vec<String>;
41 fn get_blaster_relays(&self) -> &Vec<String>;
40 async fn send_event_to(&self, url: &str, event: nostr::event::Event) -> Result<nostr::EventId>; 42 async fn send_event_to(&self, url: &str, event: nostr::event::Event) -> Result<nostr::EventId>;
41 async fn get_events( 43 async fn get_events(
42 &self, 44 &self,
@@ -55,7 +57,6 @@ impl Connect for Client {
55 ] 57 ]
56 } else { 58 } else {
57 vec![ 59 vec![
58 "wss://purplepages.es".to_string(),
59 "wss://relay.damus.io".to_string(), 60 "wss://relay.damus.io".to_string(),
60 "wss://nostr-pub.wellorder.net".to_string(), 61 "wss://nostr-pub.wellorder.net".to_string(),
61 "wss://nos.lol".to_string(), 62 "wss://nos.lol".to_string(),
@@ -70,6 +71,7 @@ impl Connect for Client {
70 ] 71 ]
71 } else { 72 } else {
72 vec![ 73 vec![
74 "wss://purplepages.es".to_string(),
73 "wss://nostr.wine/".to_string(), 75 "wss://nostr.wine/".to_string(),
74 "wss://eden.nostr.land/".to_string(), 76 "wss://eden.nostr.land/".to_string(),
75 "wss://relay.nostr.band/".to_string(), 77 "wss://relay.nostr.band/".to_string(),
@@ -77,10 +79,16 @@ impl Connect for Client {
77 ] 79 ]
78 }; 80 };
79 81
82 let blaster_relays: Vec<String> = if std::env::var("NGITTEST").is_ok() {
83 vec!["ws://localhost:8057".to_string()]
84 } else {
85 vec!["wss://nostr.mutinywallet.com".to_string()]
86 };
80 Client { 87 Client {
81 client: nostr_sdk::Client::new(&nostr::Keys::generate()), 88 client: nostr_sdk::Client::new(&nostr::Keys::generate()),
82 fallback_relays, 89 fallback_relays,
83 more_fallback_relays, 90 more_fallback_relays,
91 blaster_relays,
84 } 92 }
85 } 93 }
86 fn new(opts: Params) -> Self { 94 fn new(opts: Params) -> Self {
@@ -88,6 +96,7 @@ impl Connect for Client {
88 client: nostr_sdk::Client::new(&opts.keys.unwrap_or(nostr::Keys::generate())), 96 client: nostr_sdk::Client::new(&opts.keys.unwrap_or(nostr::Keys::generate())),
89 fallback_relays: opts.fallback_relays, 97 fallback_relays: opts.fallback_relays,
90 more_fallback_relays: opts.more_fallback_relays, 98 more_fallback_relays: opts.more_fallback_relays,
99 blaster_relays: opts.blaster_relays,
91 } 100 }
92 } 101 }
93 102
@@ -110,6 +119,10 @@ impl Connect for Client {
110 &self.more_fallback_relays 119 &self.more_fallback_relays
111 } 120 }
112 121
122 fn get_blaster_relays(&self) -> &Vec<String> {
123 &self.blaster_relays
124 }
125
113 async fn send_event_to(&self, url: &str, event: Event) -> Result<nostr::EventId> { 126 async fn send_event_to(&self, url: &str, event: Event) -> Result<nostr::EventId> {
114 self.client.add_relay(url).await?; 127 self.client.add_relay(url).await?;
115 self.client.connect_relay(url).await?; 128 self.client.connect_relay(url).await?;
@@ -243,6 +256,7 @@ pub struct Params {
243 pub keys: Option<nostr::Keys>, 256 pub keys: Option<nostr::Keys>,
244 pub fallback_relays: Vec<String>, 257 pub fallback_relays: Vec<String>,
245 pub more_fallback_relays: Vec<String>, 258 pub more_fallback_relays: Vec<String>,
259 pub blaster_relays: Vec<String>,
246} 260}
247 261
248fn get_dedup_events(relay_results: Vec<Result<Vec<nostr::Event>>>) -> Vec<Event> { 262fn get_dedup_events(relay_results: Vec<Result<Vec<nostr::Event>>>) -> Vec<Event> {