upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/client.rs42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/lib/client.rs b/src/lib/client.rs
index 6c6d81e..7cd3c46 100644
--- a/src/lib/client.rs
+++ b/src/lib/client.rs
@@ -44,7 +44,7 @@ use nostr_sdk::{
44 44
45use crate::{ 45use crate::{
46 get_dirs, 46 get_dirs,
47 git::{Repo, RepoActions}, 47 git::{Repo, RepoActions, get_git_config_item},
48 git_events::{ 48 git_events::{
49 event_is_cover_letter, event_is_patch_set_root, event_is_revision_root, status_kinds, 49 event_is_cover_letter, event_is_patch_set_root, event_is_revision_root, status_kinds,
50 }, 50 },
@@ -659,6 +659,46 @@ impl Default for Params {
659 } 659 }
660 } 660 }
661} 661}
662impl Params {
663 pub fn with_git_config_relay_defaults(git_repo: &Option<&Repo>) -> Self {
664 let mut params = Params::default();
665 if std::env::var("NGITTEST").is_err() {
666 // ignore git config settings under test
667 if let Ok(Some(relay_defaults)) =
668 get_git_config_item(git_repo, "nostr.relay-default-set")
669 {
670 let new_default_relays: Vec<String> = relay_defaults
671 .split(';')
672 .filter_map(|url| RelayUrl::parse(url).ok()) // Attempt to parse and filter out errors
673 .map(|relay_url| relay_url.to_string()) // Convert RelayUrl back to String
674 .collect();
675 // elsewhere it is assumed this isn't empty
676 if !new_default_relays.is_empty() {
677 params.fallback_relays = new_default_relays;
678 }
679 }
680 if let Ok(Some(relay_blasters)) =
681 get_git_config_item(git_repo, "nostr.relay-blaster-set")
682 {
683 params.blaster_relays = relay_blasters
684 .split(';')
685 .filter_map(|url| RelayUrl::parse(url).ok()) // Attempt to parse and filter out errors
686 .map(|relay_url| relay_url.to_string()) // Convert RelayUrl back to String
687 .collect();
688 }
689 if let Ok(Some(relay_signer)) =
690 get_git_config_item(git_repo, "nostr.relay-signer-fallback-set")
691 {
692 params.fallback_signer_relays = relay_signer
693 .split(';')
694 .filter_map(|url| RelayUrl::parse(url).ok()) // Attempt to parse and filter out errors
695 .map(|relay_url| relay_url.to_string()) // Convert RelayUrl back to String
696 .collect();
697 }
698 }
699 params
700 }
701}
662 702
663fn get_dedup_events(relay_results: Vec<Result<Vec<nostr::Event>>>) -> Vec<Event> { 703fn get_dedup_events(relay_results: Vec<Result<Vec<nostr::Event>>>) -> Vec<Event> {
664 let mut dedup_events: Vec<Event> = vec![]; 704 let mut dedup_events: Vec<Event> = vec![];