//! Custom filters for [`askama`] templates. /// Get the DRG mod link and title from a given ID. pub fn drg_mod(mod_id: &str) -> askama::Result<(String, &str)> { let mods = std::collections::HashMap::<_, _>::from_iter([ ("brighter-objects", "Brighter Objects"), ("drglib", "DRGLib"), ("simplemissiontimer", "SimpleMissionTimer"), ]); let mod_title = mods.get(mod_id).unwrap(); Ok((format!("https://drg.mod.io/{mod_id}"), mod_title)) } /// Turn a timestamp with format `mm:ss` into its total seconds. /// /// ## Examples /// /// - `00:30` -> 30 seconds /// - `01:00` -> 60 seconds /// - `01:30` -> 90 seconds pub fn timestamp_to_seconds(timestamp: &str) -> askama::Result { let mut split = timestamp.split(':'); let minutes = split.next().map(str::parse::).unwrap().unwrap(); let seconds = split.next().map(str::parse::).unwrap().unwrap(); Ok(minutes * 60 + seconds) }