forked from janek/mostr
docs: slight additions to readme and code comments
This commit is contained in:
parent
65207a1de2
commit
50ac994d21
|
@ -1,6 +1,6 @@
|
|||
/target
|
||||
/examples
|
||||
|
||||
relays
|
||||
keys
|
||||
*.html
|
||||
*.rs
|
|
@ -139,11 +139,11 @@ For debugging: `props`, `alltags`, `descriptions`
|
|||
## Nostr reference
|
||||
|
||||
Mostr mainly uses the following NIPs:
|
||||
- NIP01 for task descriptions
|
||||
- Kind 1 for task descriptions
|
||||
- Issue Tracking: https://github.com/nostr-protocol/nips/blob/master/34.md
|
||||
+ Tasks have Kind 1621 (originally: git issue - currently no native markdown support)
|
||||
+ Kind 1622 may be used for task comments or replace Kind 1 for descriptions
|
||||
+ Kind 1630-1633: Task Status (Open, Done, Closed, Pending)
|
||||
+ Kind 1630-1633: Task Status (1630 Open, 1631 Done, 1632 Closed, 1633 Pending)
|
||||
- Implementing proprietary Kind 1650 for time-tracking
|
||||
|
||||
Considering to use Calendar: https://github.com/nostr-protocol/nips/blob/master/52.md
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
use fmt::Display;
|
||||
use std::collections::{BTreeSet, HashSet};
|
||||
use std::fmt;
|
||||
use std::ops::Div;
|
||||
|
||||
use itertools::Either::{Left, Right};
|
||||
use itertools::Itertools;
|
||||
use log::{debug, error, info, trace, warn};
|
||||
use nostr_sdk::{Alphabet, Event, EventBuilder, EventId, Kind, Tag, TagStandard, Timestamp};
|
||||
use nostr_sdk::{Event, EventBuilder, EventId, Kind, Tag, TagStandard, Timestamp};
|
||||
|
||||
use crate::helpers::some_non_empty;
|
||||
use crate::kinds::is_hashtag;
|
||||
|
|
16
src/tasks.rs
16
src/tasks.rs
|
@ -64,7 +64,7 @@ impl Tasks {
|
|||
"rpath".into(),
|
||||
"desc".into(),
|
||||
],
|
||||
position: None,
|
||||
position: None, // TODO persist position
|
||||
view: Default::default(),
|
||||
tags: Default::default(),
|
||||
state: None,
|
||||
|
@ -300,6 +300,7 @@ impl Tasks {
|
|||
writeln!(
|
||||
lock,
|
||||
"{} since {} (total tracked time {}m)",
|
||||
// TODO tracking since, scheduled/planned for
|
||||
state.get_label(),
|
||||
match Local.timestamp_opt(state.time.as_u64() as i64, 0) {
|
||||
Single(time) => {
|
||||
|
@ -322,7 +323,7 @@ impl Tasks {
|
|||
)?;
|
||||
writeln!(lock, "{}", t.descriptions().join("\n"))?;
|
||||
}
|
||||
// TODO proper columns
|
||||
// TODO proper column alignment
|
||||
writeln!(lock, "{}", self.properties.join("\t").bold())?;
|
||||
for task in self.current_tasks() {
|
||||
writeln!(
|
||||
|
@ -728,6 +729,8 @@ mod tasks_test {
|
|||
tasks.track_at(Timestamp::from(2));
|
||||
assert_eq!(tasks.get_own_history().unwrap().len(), 3);
|
||||
assert_eq!(tasks.time_tracked(zero), 1);
|
||||
|
||||
// TODO test received events
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -819,8 +822,15 @@ mod tasks_test {
|
|||
);
|
||||
assert_eq!(tasks.relative_path(dangling), "test");
|
||||
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
fn test_itertools() {
|
||||
use itertools::Itertools;
|
||||
assert_eq!("test toast".split(' ').collect_vec().len(), 3);
|
||||
assert_eq!(
|
||||
"test toast".split(' ').collect_vec().len(),
|
||||
3
|
||||
);
|
||||
assert_eq!(
|
||||
"test toast".split_ascii_whitespace().collect_vec().len(),
|
||||
2
|
||||
|
|
Loading…
Reference in New Issue