upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/lib/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/client.rs')
-rw-r--r--src/lib/client.rs112
1 files changed, 56 insertions, 56 deletions
diff --git a/src/lib/client.rs b/src/lib/client.rs
index 9eef777..6c6d81e 100644
--- a/src/lib/client.rs
+++ b/src/lib/client.rs
@@ -108,64 +108,21 @@ pub trait Connect {
108#[async_trait] 108#[async_trait]
109impl Connect for Client { 109impl Connect for Client {
110 fn default() -> Self { 110 fn default() -> Self {
111 let fallback_relays: Vec<String> = if std::env::var("NGITTEST").is_ok() { 111 Self::new(Params::default())
112 vec![
113 "ws://localhost:8051".to_string(),
114 "ws://localhost:8052".to_string(),
115 ]
116 } else {
117 vec![
118 "wss://relay.damus.io".to_string(), /* free, good reliability, have been known
119 * to delete all messages */
120 "wss://nos.lol".to_string(),
121 "wss://relay.nostr.band".to_string(),
122 ]
123 };
124
125 let more_fallback_relays: Vec<String> = if std::env::var("NGITTEST").is_ok() {
126 vec![
127 "ws://localhost:8055".to_string(),
128 "ws://localhost:8056".to_string(),
129 ]
130 } else {
131 vec![
132 "wss://purplerelay.com".to_string(), // free but reliability not tested
133 "wss://purplepages.es".to_string(), // for profile events but unreliable
134 "wss://relayable.org".to_string(), // free but not always reliable
135 ]
136 };
137
138 let blaster_relays: Vec<String> = if std::env::var("NGITTEST").is_ok() {
139 vec!["ws://localhost:8057".to_string()]
140 } else {
141 vec![]
142 };
143
144 let fallback_signer_relays: Vec<String> = if std::env::var("NGITTEST").is_ok() {
145 vec!["ws://localhost:8051".to_string()]
146 } else {
147 vec!["wss://relay.nsec.app".to_string()]
148 };
149
150 Client {
151 client: nostr_sdk::ClientBuilder::new()
152 .opts(Options::new().relay_limits(RelayLimits::disable()))
153 .build(),
154 fallback_relays,
155 more_fallback_relays,
156 blaster_relays,
157 fallback_signer_relays,
158 }
159 } 112 }
113
160 fn new(opts: Params) -> Self { 114 fn new(opts: Params) -> Self {
161 Client { 115 Client {
162 client: nostr_sdk::ClientBuilder::new() 116 client: if let Some(keys) = opts.keys {
163 .opts(Options::new().relay_limits(RelayLimits::disable())) 117 nostr_sdk::ClientBuilder::new()
164 .signer(opts.keys.unwrap_or(nostr::Keys::generate())) 118 .opts(Options::new().relay_limits(RelayLimits::disable()))
165 // .database( 119 .signer(keys)
166 // SQLiteDatabase::open(get_dirs()?.cache_dir().join("nostr-cache.lmdb")). 120 .build()
167 // await?, ) 121 } else {
168 .build(), 122 nostr_sdk::ClientBuilder::new()
123 .opts(Options::new().relay_limits(RelayLimits::disable()))
124 .build()
125 },
169 fallback_relays: opts.fallback_relays, 126 fallback_relays: opts.fallback_relays,
170 more_fallback_relays: opts.more_fallback_relays, 127 more_fallback_relays: opts.more_fallback_relays,
171 blaster_relays: opts.blaster_relays, 128 blaster_relays: opts.blaster_relays,
@@ -651,7 +608,6 @@ async fn get_events_of(
651 Ok(events.into_iter().collect()) 608 Ok(events.into_iter().collect())
652} 609}
653 610
654#[derive(Default)]
655pub struct Params { 611pub struct Params {
656 pub keys: Option<nostr::Keys>, 612 pub keys: Option<nostr::Keys>,
657 pub fallback_relays: Vec<String>, 613 pub fallback_relays: Vec<String>,
@@ -660,6 +616,50 @@ pub struct Params {
660 pub fallback_signer_relays: Vec<String>, 616 pub fallback_signer_relays: Vec<String>,
661} 617}
662 618
619impl Default for Params {
620 fn default() -> Self {
621 Params {
622 keys: None,
623 fallback_relays: if std::env::var("NGITTEST").is_ok() {
624 vec![
625 "ws://localhost:8051".to_string(),
626 "ws://localhost:8052".to_string(),
627 ]
628 } else {
629 vec![
630 "wss://relay.damus.io".to_string(), /* free, good reliability, have been
631 * known
632 * to delete all messages */
633 "wss://nos.lol".to_string(),
634 "wss://relay.nostr.band".to_string(),
635 ]
636 },
637 more_fallback_relays: if std::env::var("NGITTEST").is_ok() {
638 vec![
639 "ws://localhost:8055".to_string(),
640 "ws://localhost:8056".to_string(),
641 ]
642 } else {
643 vec![
644 "wss://purplerelay.com".to_string(), // free but reliability not tested
645 "wss://purplepages.es".to_string(), // for profile events but unreliable
646 "wss://relayable.org".to_string(), // free but not always reliable
647 ]
648 },
649 blaster_relays: if std::env::var("NGITTEST").is_ok() {
650 vec!["ws://localhost:8057".to_string()]
651 } else {
652 vec![]
653 },
654 fallback_signer_relays: if std::env::var("NGITTEST").is_ok() {
655 vec!["ws://localhost:8051".to_string()]
656 } else {
657 vec!["wss://relay.nsec.app".to_string()]
658 },
659 }
660 }
661}
662
663fn get_dedup_events(relay_results: Vec<Result<Vec<nostr::Event>>>) -> Vec<Event> { 663fn get_dedup_events(relay_results: Vec<Result<Vec<nostr::Event>>>) -> Vec<Event> {
664 let mut dedup_events: Vec<Event> = vec![]; 664 let mut dedup_events: Vec<Event> = vec![];
665 for events in relay_results.into_iter().flatten() { 665 for events in relay_results.into_iter().flatten() {