Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
1use links::{parse_any_link, Link}; 2use num_format::{Locale, ToFormattedString}; 3 4pub fn to_browseable(s: &str) -> askama::Result<Option<String>> { 5 Ok({ 6 if let Some(link) = parse_any_link(s) { 7 match link { 8 Link::AtUri(at_uri) => at_uri.strip_prefix("at://").map(|noproto| { 9 format!("https://atproto-browser-plus-links.vercel.app/at/{noproto}") 10 }), 11 Link::Did(did) => Some(format!( 12 "https://atproto-browser-plus-links.vercel.app/at/{did}" 13 )), 14 Link::Uri(uri) => Some(uri), 15 } 16 } else { 17 None 18 } 19 }) 20} 21 22pub fn human_number(n: &u64) -> askama::Result<String> { 23 Ok(n.to_formatted_string(&Locale::en)) 24}