use super::settings::{hooks_for_event, Merged};
pub(crate) fn deliver_slots(m: &Merged, event: &str) -> Vec<u32> {
let mut out: Vec<u32> = hooks_for_event(m, event)
.iter()
.filter_map(|h| deliver_slot_of(&h.command))
.collect();
out.sort_unstable();
out.dedup();
out
}
fn deliver_slot_of(command: &str) -> Option<u32> {
let toks: Vec<&str> = command.split_whitespace().collect();
let i = toks.iter().position(|t| {
let t = t.trim_end_matches(".exe");
t == "csift" || t.ends_with("/csift") || t.ends_with("\\csift")
})?;
if toks.get(i + 1) != Some(&"deliver") || toks.get(i + 2) != Some(&"--slot") {
return None;
}
toks.get(i + 3)?.parse::<u32>().ok()
}