From 7abd469db87388463187c3a5a9d5b3fe73ffee06 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Wed, 21 May 2025 12:28:35 +0100 Subject: refactor: move client defaults into params in prep for optionally getting some of this config from git config overrides --- src/lib/client.rs | 112 +++++++++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 56 deletions(-) (limited to 'src/lib') 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 { #[async_trait] impl Connect for Client { fn default() -> Self { - let fallback_relays: Vec = if std::env::var("NGITTEST").is_ok() { - vec![ - "ws://localhost:8051".to_string(), - "ws://localhost:8052".to_string(), - ] - } else { - vec![ - "wss://relay.damus.io".to_string(), /* free, good reliability, have been known - * to delete all messages */ - "wss://nos.lol".to_string(), - "wss://relay.nostr.band".to_string(), - ] - }; - - let more_fallback_relays: Vec = if std::env::var("NGITTEST").is_ok() { - vec![ - "ws://localhost:8055".to_string(), - "ws://localhost:8056".to_string(), - ] - } else { - vec![ - "wss://purplerelay.com".to_string(), // free but reliability not tested - "wss://purplepages.es".to_string(), // for profile events but unreliable - "wss://relayable.org".to_string(), // free but not always reliable - ] - }; - - let blaster_relays: Vec = if std::env::var("NGITTEST").is_ok() { - vec!["ws://localhost:8057".to_string()] - } else { - vec![] - }; - - let fallback_signer_relays: Vec = if std::env::var("NGITTEST").is_ok() { - vec!["ws://localhost:8051".to_string()] - } else { - vec!["wss://relay.nsec.app".to_string()] - }; - - Client { - client: nostr_sdk::ClientBuilder::new() - .opts(Options::new().relay_limits(RelayLimits::disable())) - .build(), - fallback_relays, - more_fallback_relays, - blaster_relays, - fallback_signer_relays, - } + Self::new(Params::default()) } + fn new(opts: Params) -> Self { Client { - client: nostr_sdk::ClientBuilder::new() - .opts(Options::new().relay_limits(RelayLimits::disable())) - .signer(opts.keys.unwrap_or(nostr::Keys::generate())) - // .database( - // SQLiteDatabase::open(get_dirs()?.cache_dir().join("nostr-cache.lmdb")). - // await?, ) - .build(), + client: if let Some(keys) = opts.keys { + nostr_sdk::ClientBuilder::new() + .opts(Options::new().relay_limits(RelayLimits::disable())) + .signer(keys) + .build() + } else { + nostr_sdk::ClientBuilder::new() + .opts(Options::new().relay_limits(RelayLimits::disable())) + .build() + }, fallback_relays: opts.fallback_relays, more_fallback_relays: opts.more_fallback_relays, blaster_relays: opts.blaster_relays, @@ -651,7 +608,6 @@ async fn get_events_of( Ok(events.into_iter().collect()) } -#[derive(Default)] pub struct Params { pub keys: Option, pub fallback_relays: Vec, @@ -660,6 +616,50 @@ pub struct Params { pub fallback_signer_relays: Vec, } +impl Default for Params { + fn default() -> Self { + Params { + keys: None, + fallback_relays: if std::env::var("NGITTEST").is_ok() { + vec![ + "ws://localhost:8051".to_string(), + "ws://localhost:8052".to_string(), + ] + } else { + vec![ + "wss://relay.damus.io".to_string(), /* free, good reliability, have been + * known + * to delete all messages */ + "wss://nos.lol".to_string(), + "wss://relay.nostr.band".to_string(), + ] + }, + more_fallback_relays: if std::env::var("NGITTEST").is_ok() { + vec![ + "ws://localhost:8055".to_string(), + "ws://localhost:8056".to_string(), + ] + } else { + vec![ + "wss://purplerelay.com".to_string(), // free but reliability not tested + "wss://purplepages.es".to_string(), // for profile events but unreliable + "wss://relayable.org".to_string(), // free but not always reliable + ] + }, + blaster_relays: if std::env::var("NGITTEST").is_ok() { + vec!["ws://localhost:8057".to_string()] + } else { + vec![] + }, + fallback_signer_relays: if std::env::var("NGITTEST").is_ok() { + vec!["ws://localhost:8051".to_string()] + } else { + vec!["wss://relay.nsec.app".to_string()] + }, + } + } +} + fn get_dedup_events(relay_results: Vec>>) -> Vec { let mut dedup_events: Vec = vec![]; for events in relay_results.into_iter().flatten() { -- cgit v1.2.3