MCPcopy Create free account
hub / github.com/adysec/tracker / generate_github_pages

Function generate_github_pages

tracker-checker/src/main.rs:593–937  ·  view source on GitHub ↗
(
    results: &[CheckResult],
    history: &HashMap<String, TrackerHistory>,
    input_file: &str,
    output_file: &str,
)

Source from the content-addressed store, hash-verified

591}
592
593fn generate_github_pages(
594 results: &[CheckResult],
595 history: &HashMap<String, TrackerHistory>,
596 input_file: &str,
597 output_file: &str,
598) -> Result<(), String> {
599 fs::create_dir_all("docs/public-stats")
600 .map_err(|e| format!("Failed to create docs directory: {}", e))?;
601
602 let total = results.len();
603 let alive = results.iter().filter(|r| r.status == Status::Alive).count();
604 let dead = results.iter().filter(|r| r.status == Status::Dead).count();
605 let invalid = results.iter().filter(|r| r.status == Status::Invalid).count();
606
607 let mut http_count = 0usize;
608 let mut https_count = 0usize;
609 let mut udp_count = 0usize;
610 let mut wss_count = 0usize;
611
612 for r in results {
613 match tracker_protocol(&r.url) {
614 "http" => http_count += 1,
615 "https" => https_count += 1,
616 "udp" => udp_count += 1,
617 "wss" => wss_count += 1,
618 _ => {}
619 }
620 }
621
622 let uptime_pct = if total == 0 {
623 0.0
624 } else {
625 (alive as f64) * 100.0 / (total as f64)
626 };
627
628 // let ts = SystemTime::now()
629 // .duration_since(UNIX_EPOCH)
630 // .map(|d| d.as_secs())
631 // .unwrap_or(0);
632
633 let alive_list = sort_and_dedupe(
634 results
635 .iter()
636 .filter(|r| r.status == Status::Alive)
637 .map(|r| r.url.clone())
638 .collect(),
639 );
640
641 let alive_http = sort_and_dedupe(
642 results
643 .iter()
644 .filter(|r| r.status == Status::Alive)
645 .filter(|r| tracker_protocol(&r.url) == "http")
646 .map(|r| r.url.clone())
647 .collect(),
648 );
649 let alive_https = sort_and_dedupe(
650 results

Callers 1

mainFunction · 0.85

Calls 3

tracker_protocolFunction · 0.85
sort_and_dedupeFunction · 0.85
write_linesFunction · 0.85

Tested by

no test coverage detected