wip
parent
4154e1aad8
commit
931edec4a4
|
|
@ -1,5 +1,5 @@
|
|||
use serde_yaml;
|
||||
use chrono::DateTime;
|
||||
use chrono::{DateTime, Local};
|
||||
use chrono::naive::NaiveDateTime;
|
||||
use regex::Regex;
|
||||
use croner;
|
||||
|
|
@ -21,8 +21,29 @@ impl Task {
|
|||
}
|
||||
|
||||
fn is_due(&self) -> bool {
|
||||
assert!(false);
|
||||
false
|
||||
self.is_due_now(TS::now())
|
||||
}
|
||||
|
||||
fn is_due_now(&self, now: TS) -> bool {
|
||||
match self.get("schedule".to_string()) {
|
||||
Some(v) => {
|
||||
match When::new(v) {
|
||||
Ok(when) => now.unix() <= when.next(self.ts()).unix(),
|
||||
Err(_) => true,
|
||||
}
|
||||
},
|
||||
None => true,
|
||||
}
|
||||
}
|
||||
|
||||
fn ts(&self) -> TS {
|
||||
match self.get("ts".to_string()) {
|
||||
Some(v) => match TS::new(v) {
|
||||
Ok(ts) => ts,
|
||||
Err(_) => TS::from_unix(0),
|
||||
},
|
||||
None => TS::from_unix(0),
|
||||
}
|
||||
}
|
||||
|
||||
fn get(&self, k: String) -> Option<String> {
|
||||
|
|
@ -279,6 +300,10 @@ mod test_duration {
|
|||
struct TS(u64);
|
||||
|
||||
impl TS {
|
||||
fn now() -> TS {
|
||||
Self::from_unix(Local::now().timestamp() as u64)
|
||||
}
|
||||
|
||||
fn from_unix(src: u64) -> TS {
|
||||
TS{0: src}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue