From 686604665395385600ef8f1b5238a775249552a1 Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Fri, 23 May 2025 10:01:29 +0100 Subject: feat: only try http(s) for ngit-relays otherwise it tries all the protocols and reprots on each --- src/bin/git_remote_nostr/list.rs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src/bin/git_remote_nostr/list.rs') diff --git a/src/bin/git_remote_nostr/list.rs b/src/bin/git_remote_nostr/list.rs index 2d233ae..bf16f89 100644 --- a/src/bin/git_remote_nostr/list.rs +++ b/src/bin/git_remote_nostr/list.rs @@ -13,7 +13,7 @@ use ngit::{ }, git_events::event_to_cover_letter, login::get_curent_user, - repo_ref, + repo_ref::{self, is_ngit_relay}, }; use nostr_sdk::hashes::sha1::Hash as Sha1Hash; use repo_ref::RepoRef; @@ -41,6 +41,7 @@ pub async fn run_list( git_repo, &repo_ref.git_server, &repo_ref.to_nostr_git_url(&None), + &repo_ref.ngit_relays(), ); let mut state = if let Some(nostr_state) = nostr_state { @@ -131,6 +132,7 @@ async fn get_open_and_draft_proposals_state( git_server_url, &repo_ref.to_nostr_git_url(&None), term, + is_ngit_relay(git_server_url, &repo_ref.ngit_relays()), ) .is_ok() { @@ -174,12 +176,19 @@ pub fn list_from_remotes( term: &console::Term, git_repo: &Repo, git_servers: &Vec, - decoded_nostr_url: &NostrUrlDecoded, // Add this parameter + decoded_nostr_url: &NostrUrlDecoded, + ngit_relays: &[String], ) -> HashMap> { let mut remote_states = HashMap::new(); let mut errors = HashMap::new(); for url in git_servers { - match list_from_remote(term, git_repo, url, decoded_nostr_url) { + match list_from_remote( + term, + git_repo, + url, + decoded_nostr_url, + is_ngit_relay(url, ngit_relays), + ) { Err(error) => { errors.insert(url, error); } @@ -195,10 +204,12 @@ pub fn list_from_remote( term: &console::Term, git_repo: &Repo, git_server_url: &str, - decoded_nostr_url: &NostrUrlDecoded, // Add this parameter + decoded_nostr_url: &NostrUrlDecoded, + is_ngit_relay: bool, ) -> Result> { let server_url = git_server_url.parse::()?; - let protocols_to_attempt = get_read_protocols_to_try(git_repo, &server_url, decoded_nostr_url); + let protocols_to_attempt = + get_read_protocols_to_try(git_repo, &server_url, decoded_nostr_url, is_ngit_relay); let mut failed_protocols = vec![]; let mut remote_state: Option> = None; -- cgit v1.2.3