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:
authorDanConwayDev <DanConwayDev@protonmail.com>2025-05-23 09:08:17 +0100
committerDanConwayDev <DanConwayDev@protonmail.com>2025-05-23 09:08:17 +0100
commitcc9a3a1d8526373625246504f72f338fd89c8d8b (patch)
tree18efefd2b076e849ecd209d5a338b60520fe7eb3 /src/lib
parentd803f0d52a7b5ca95f798d624b1deeb26052da81 (diff)
fix: use blossoms from all maintainers
applying this change to blossom: 25e58e52624210f5852a9183495821526add5928
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/client.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lib/client.rs b/src/lib/client.rs
index 5ba64ff..bfa7b33 100644
--- a/src/lib/client.rs
+++ b/src/lib/client.rs
@@ -39,7 +39,7 @@ use nostr_lmdb::NostrLMDB;
39use nostr_relay_pool::relay::ReqExitPolicy; 39use nostr_relay_pool::relay::ReqExitPolicy;
40use nostr_sdk::{ 40use nostr_sdk::{
41 EventBuilder, EventId, Kind, NostrSigner, Options, PublicKey, RelayUrl, SingleLetterTag, 41 EventBuilder, EventId, Kind, NostrSigner, Options, PublicKey, RelayUrl, SingleLetterTag,
42 Timestamp, prelude::RelayLimits, 42 Timestamp, Url, prelude::RelayLimits,
43}; 43};
44 44
45use crate::{ 45use crate::{
@@ -973,15 +973,17 @@ pub async fn get_repo_ref_from_cache(
973 } 973 }
974 } 974 }
975 975
976 // Use relays and git servers from all maintainer announcement events 976 // Use relays, git and blossom servers from all maintainer announcement events
977 // we use Vec and HashSet to remove duplicates and preserve order 977 // we use Vec and HashSet to remove duplicates and preserve order
978 let mut relays: Vec<RelayUrl> = repo_ref.relays.clone(); 978 let mut relays: Vec<RelayUrl> = repo_ref.relays.clone();
979 let mut git_server: Vec<String> = repo_ref.git_server.clone(); 979 let mut git_server: Vec<String> = repo_ref.git_server.clone();
980 let mut blossoms: Vec<Url> = repo_ref.blossoms.clone();
980 let mut seen_relays: HashSet<RelayUrl> = HashSet::from_iter(relays.iter().cloned()); 981 let mut seen_relays: HashSet<RelayUrl> = HashSet::from_iter(relays.iter().cloned());
981 let mut seen_git_server: HashSet<String> = git_server 982 let mut seen_git_server: HashSet<String> = git_server
982 .iter() 983 .iter()
983 .map(|server| server.trim_end_matches('/').to_string()) 984 .map(|server| server.trim_end_matches('/').to_string())
984 .collect(); 985 .collect();
986 let mut seen_blossoms: HashSet<Url> = HashSet::from_iter(blossoms.iter().cloned());
985 987
986 for m in &maintainers { 988 for m in &maintainers {
987 if let Some(event) = repo_events.iter().find(|e| e.pubkey == *m) { 989 if let Some(event) = repo_events.iter().find(|e| e.pubkey == *m) {
@@ -996,6 +998,11 @@ pub async fn get_repo_ref_from_cache(
996 git_server.push(server); 998 git_server.push(server);
997 } 999 }
998 } 1000 }
1001 for blossom in m_repo_ref.blossoms {
1002 if seen_blossoms.insert(blossom.clone()) {
1003 blossoms.push(blossom);
1004 }
1005 }
999 } 1006 }
1000 } 1007 }
1001 } 1008 }