From 5dbac4d643f4dc5110bf9971e29598dfc30d75f0 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Thu, 28 Nov 2024 15:07:02 +0000 Subject: feat(init): user read or fallback relays as default instead of user write or none --- src/bin/ngit/sub_commands/init.rs | 16 ++++++++++------ src/lib/login/user.rs | 7 +++++++ 2 files changed, 17 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/bin/ngit/sub_commands/init.rs b/src/bin/ngit/sub_commands/init.rs index 1b9ba5e..3dc63ad 100644 --- a/src/bin/ngit/sub_commands/init.rs +++ b/src/bin/ngit/sub_commands/init.rs @@ -302,21 +302,25 @@ pub async fn launch(cli_args: &Cli, args: &SubCommandArgs) -> Result<()> { args.clone_url.clone() }; - // TODO: check if relays are free to post to so contributors can submit patches - // TODO: recommend some reliable free ones + // TODO: when NIP-66 is functional, use this to reccommend relays and filter out + // relays that won't accept contributors events. NIP-11 'limitations' + // isn't widely used enough to be usedful. + let relays: Vec = { let mut default = if let Ok(config) = &repo_config_result { - config.relays.clone().join(" ") + config.relays.clone() } else if let Some(repo_ref) = &repo_ref { repo_ref .relays .iter() .map(std::string::ToString::to_string) .collect::>() - .join(" ") + } else if user_ref.relays.read().is_empty() { + client.get_fallback_relays().clone() } else { - user_ref.relays.write().join(" ") - }; + user_ref.relays.read().clone() + } + .join(" "); 'outer: loop { let relays: Vec = if args.relays.is_empty() { Interactor::default() diff --git a/src/lib/login/user.rs b/src/lib/login/user.rs index 4456308..9534bbe 100644 --- a/src/lib/login/user.rs +++ b/src/lib/login/user.rs @@ -38,6 +38,13 @@ impl UserRelays { .map(|r| r.url.clone()) .collect() } + pub fn read(&self) -> Vec { + self.relays + .iter() + .filter(|r| r.read) + .map(|r| r.url.clone()) + .collect() + } } #[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] -- cgit v1.2.3