From cc9a3a1d8526373625246504f72f338fd89c8d8b Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Fri, 23 May 2025 09:08:17 +0100 Subject: fix: use blossoms from all maintainers applying this change to blossom: 25e58e52624210f5852a9183495821526add5928 --- src/lib/client.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src') 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; use nostr_relay_pool::relay::ReqExitPolicy; use nostr_sdk::{ EventBuilder, EventId, Kind, NostrSigner, Options, PublicKey, RelayUrl, SingleLetterTag, - Timestamp, prelude::RelayLimits, + Timestamp, Url, prelude::RelayLimits, }; use crate::{ @@ -973,15 +973,17 @@ pub async fn get_repo_ref_from_cache( } } - // Use relays and git servers from all maintainer announcement events + // Use relays, git and blossom servers from all maintainer announcement events // we use Vec and HashSet to remove duplicates and preserve order let mut relays: Vec = repo_ref.relays.clone(); let mut git_server: Vec = repo_ref.git_server.clone(); + let mut blossoms: Vec = repo_ref.blossoms.clone(); let mut seen_relays: HashSet = HashSet::from_iter(relays.iter().cloned()); let mut seen_git_server: HashSet = git_server .iter() .map(|server| server.trim_end_matches('/').to_string()) .collect(); + let mut seen_blossoms: HashSet = HashSet::from_iter(blossoms.iter().cloned()); for m in &maintainers { if let Some(event) = repo_events.iter().find(|e| e.pubkey == *m) { @@ -996,6 +998,11 @@ pub async fn get_repo_ref_from_cache( git_server.push(server); } } + for blossom in m_repo_ref.blossoms { + if seen_blossoms.insert(blossom.clone()) { + blossoms.push(blossom); + } + } } } } -- cgit v1.2.3