upleb.uk

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

summaryrefslogtreecommitdiff
path: root/src/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.rs')
-rw-r--r--src/client.rs31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/client.rs b/src/client.rs
index ccd5cfb..3b18ad8 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -517,7 +517,13 @@ impl Connect for Client {
517 fresh_profiles = HashSet::new(); 517 fresh_profiles = HashSet::new();
518 518
519 let relay = self.client.relay(&relay_url).await?; 519 let relay = self.client.relay(&relay_url).await?;
520 let events: Vec<nostr::Event> = get_events_of(&relay, filters, &None).await?; 520 let events: Vec<nostr::Event> = get_events_of(&relay, filters.clone(), &None)
521 .await?
522 .iter()
523 // don't process events that don't match filters
524 .filter(|e| filters.iter().any(|f| f.match_event(e)))
525 .cloned()
526 .collect();
521 // TODO: try reconcile 527 // TODO: try reconcile
522 528
523 process_fetched_events( 529 process_fetched_events(
@@ -1363,3 +1369,26 @@ pub struct FetchRequest {
1363 profiles_to_fetch_from_user_relays: HashMap<PublicKey, (Timestamp, Timestamp)>, 1369 profiles_to_fetch_from_user_relays: HashMap<PublicKey, (Timestamp, Timestamp)>,
1364 user_relays_for_profiles: HashSet<Url>, 1370 user_relays_for_profiles: HashSet<Url>,
1365} 1371}
1372
1373pub async fn fetching_with_report(
1374 git_repo_path: &Path,
1375 #[cfg(test)] client: &crate::client::MockConnect,
1376 #[cfg(not(test))] client: &Client,
1377 repo_coordinates: &HashSet<Coordinate>,
1378) -> Result<FetchReport> {
1379 let term = console::Term::stderr();
1380 term.write_line("fetching updates...")?;
1381 let (relay_reports, progress_reporter) = client
1382 .fetch_all(git_repo_path, repo_coordinates, &HashSet::new())
1383 .await?;
1384 if !relay_reports.iter().any(std::result::Result::is_err) {
1385 let _ = progress_reporter.clear();
1386 }
1387 let report = consolidate_fetch_reports(relay_reports);
1388 if report.to_string().is_empty() {
1389 println!("no updates");
1390 } else {
1391 println!("updates: {report}");
1392 }
1393 Ok(report)
1394}