From 9a2f3f8794c7944204dda00eb15186e919cd99ca Mon Sep 17 00:00:00 2001 From: xeruf <27jf@pm.me> Date: Fri, 19 Jul 2024 21:06:03 +0300 Subject: [PATCH] refactor: reformat --- .gitignore | 3 +++ src/main.rs | 3 ++- src/task.rs | 22 +++++++++++----------- src/tasks.rs | 37 ++++++++++++++++++++++--------------- 4 files changed, 38 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index ea8c4bf..bb86f06 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ /target + +*.html +/src/bin diff --git a/src/main.rs b/src/main.rs index b764609..48df081 100644 --- a/src/main.rs +++ b/src/main.rs @@ -215,7 +215,8 @@ async fn repl() { tasks.update_state("", |t| if t.pure_state() == State::Active { Some(State::Open) } else { None }); println!(); - println!("Submitting created events"); + println!("Submitting events"); + // TODO send via message passing let _ = CLIENT .batch_event( tasks diff --git a/src/task.rs b/src/task.rs index e192cd3..6575b60 100644 --- a/src/task.rs +++ b/src/task.rs @@ -1,6 +1,6 @@ -use std::fmt; -use nostr_sdk::{Event, EventId, Kind, Tag, Timestamp}; use crate::make_event; +use nostr_sdk::{Event, EventId, Kind, Tag, Timestamp}; +use std::fmt; pub(crate) struct Task { pub(crate) event: Event, @@ -45,15 +45,15 @@ impl Task { 1633 => Some(State::Active), _ => None, } - .map(|s| TaskState { - name: if event.content.is_empty() { - None - } else { - Some(event.content.clone()) - }, - state: s, - time: event.created_at.clone(), - }) + .map(|s| TaskState { + name: if event.content.is_empty() { + None + } else { + Some(event.content.clone()) + }, + state: s, + time: event.created_at.clone(), + }) }) } diff --git a/src/tasks.rs b/src/tasks.rs index a07c70b..5399323 100644 --- a/src/tasks.rs +++ b/src/tasks.rs @@ -1,8 +1,10 @@ -use crate::{make_event, make_task}; -use crate::task::{Task, State}; -use nostr_sdk::{Event, EventId, Tag}; use std::collections::HashMap; +use nostr_sdk::{Event, EventId, Tag}; + +use crate::make_task; +use crate::task::{State, Task}; + type TaskMap = HashMap; pub(crate) struct Tasks { /// The Tasks @@ -30,34 +32,39 @@ impl Tasks { pub(crate) fn get_position(&self) -> Option { self.position } - + fn collect_tasks(&self, tasks: &Vec) -> Vec<&Task> { tasks.iter().filter_map(|id| self.tasks.get(id)).collect() } - + /// Total time this task and its subtasks have been active fn total_time_tracked(&self, task: &EventId) -> u64 { self.tasks.get(task).map_or(0, |t| { - t.time_tracked() + t.children.iter().map(|e| self.total_time_tracked(e)).sum::() + t.time_tracked() + + t.children + .iter() + .map(|e| self.total_time_tracked(e)) + .sum::() }) } - + pub(crate) fn set_filter(&mut self, view: Vec) { - self.view = view + self.view = view } - + pub(crate) fn current_tasks(&self) -> Vec<&Task> { let res = self.collect_tasks(&self.view); if res.len() > 0 { return res; } self.position.map_or_else( - || self.tasks.values().collect(), + || self.tasks.values().collect(), |p| { - self.tasks.get(&p).map_or(Vec::new(), |t| { - self.collect_tasks(&t.children) - }) - }) + self.tasks + .get(&p) + .map_or(Vec::new(), |t| self.collect_tasks(&t.children)) + }, + ) } pub(crate) fn print_current_tasks(&self) { @@ -78,7 +85,7 @@ impl Tasks { } println!(); } - + pub(crate) fn make_task(&self, input: &str) -> Event { let mut tags: Vec = Vec::new(); self.position.inspect(|p| tags.push(Tag::event(*p)));