diff options
| author | DanConwayDev <DanConwayDev@protonmail.com> | 2025-05-21 12:28:35 +0100 |
|---|---|---|
| committer | DanConwayDev <DanConwayDev@protonmail.com> | 2025-05-21 12:28:35 +0100 |
| commit | 7abd469db87388463187c3a5a9d5b3fe73ffee06 (patch) | |
| tree | 70adfdf21b2bfe639d1d4c2c702b7a7df96793e1 /src/lib/client.rs | |
| parent | 25e58e52624210f5852a9183495821526add5928 (diff) | |
refactor: move client defaults into params
in prep for optionally getting some of this config from git config overrides
Diffstat (limited to 'src/lib/client.rs')
| -rw-r--r-- | src/lib/client.rs | 112 |
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] |
| 109 | impl Connect for Client { | 109 | impl 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)] | ||
| 655 | pub struct Params { | 611 | pub 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 | ||
| 619 | impl 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 | |||
| 663 | fn get_dedup_events(relay_results: Vec<Result<Vec<nostr::Event>>>) -> Vec<Event> { | 663 | fn 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() { |