forked from
microcosm.blue/microcosm-rs
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}