From d88cae42736167c6791a3daac0e44c24f606582e Mon Sep 17 00:00:00 2001 From: xeruf <27jf@pm.me> Date: Fri, 16 Aug 2024 21:58:38 +0300 Subject: [PATCH] feat(main): enable filtering by author --- src/main.rs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4335d02..4fee491 100644 --- a/src/main.rs +++ b/src/main.rs @@ -366,21 +366,31 @@ async fn main() { tasks.move_up(); } - Some('@') | Some('&') => { + Some('&') => { tasks.undo(); } + Some('@') => { + let author = arg.and_then(|a| PublicKey::from_str(a).ok()).unwrap_or_else(|| keys.public_key()); + info!("Filtering for events by {author}"); + tasks.set_filter( + tasks.filtered_tasks(tasks.get_position()) + .filter(|t| t.event.pubkey == author) + .map(|t| t.event.id) + .collect() + ) + } + + Some('*') => { + info!("Setting priority not yet implemented") + } + Some('|') => match arg { None => match tasks.get_position() { None => { - info!("Filtering for Procedures"); - tasks.set_filter( - tasks.filtered_tasks(None) - .filter(|t| t.pure_state() == State::Procedure) - .map(|t| t.event.id) - .collect() - ); + tasks.set_state_filter( + StateFilter::State(State::Procedure.to_string())); } Some(id) => { tasks.set_state_for(id, "", State::Procedure);