use crate::route::hits_from; pub fn module(router: &mut windmark::router::Router) { crate::route::track_mount( router, "/directory", "A map of all publicly available routes on this Gemini capsule", |context| { crate::response::success( &format!( "# Directory\n\nA map of all publicly available routes on this \ Gemini capsule\n\n{}", { let mut lines = (*crate::route::ROUTES.lock().unwrap()) .iter() .map(|(r, d)| format!("=> {} {}", r, d.description)) .collect::>(); let standard_transform = |route: &str| { route.replace("=> ", "").split(' ').collect::>()[0] .to_string() }; lines.sort_by(|a, b| { hits_from(&standard_transform(a)) .cmp(&hits_from(&standard_transform(b))) }); lines.reverse(); lines.join("\n") } ), &context, ) }, ); }