fix RRULE
This commit is contained in:
parent
d6370aa55d
commit
351f0e057b
|
@ -87,6 +87,7 @@ mod test {
|
||||||
p.feed(b"BEGIN:VEVENT
|
p.feed(b"BEGIN:VEVENT
|
||||||
SUMMARY:Test event
|
SUMMARY:Test event
|
||||||
DTSTART:19700101
|
DTSTART:19700101
|
||||||
|
RRULE:FREQ=YEARLY
|
||||||
END:VEVENT
|
END:VEVENT
|
||||||
|
|
||||||
", |o| {
|
", |o| {
|
||||||
|
@ -96,6 +97,7 @@ END:VEVENT
|
||||||
assert_eq!(obj, Some(Object {
|
assert_eq!(obj, Some(Object {
|
||||||
name: "VEVENT".to_owned(),
|
name: "VEVENT".to_owned(),
|
||||||
content: [("SUMMARY", "Test event"),
|
content: [("SUMMARY", "Test event"),
|
||||||
|
("RRULE", "FREQ=YEARLY"),
|
||||||
("DTSTART", "19700101")]
|
("DTSTART", "19700101")]
|
||||||
.iter()
|
.iter()
|
||||||
.cloned()
|
.cloned()
|
||||||
|
|
|
@ -62,7 +62,7 @@ fn obj_to_events(calendar: String, obj: &Object) -> Vec<Event> {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let rrule_str: Option<&str> = obj.get("rrule");
|
let rrule_str: Option<&str> = obj.get("RRULE");
|
||||||
let rrule = rrule_str.and_then(
|
let rrule = rrule_str.and_then(
|
||||||
|rrule_str| RRule::from_str(
|
|rrule_str| RRule::from_str(
|
||||||
&format!("DTSTART:{}\nRRULE:{}", dtstart_str, rrule_str)
|
&format!("DTSTART:{}\nRRULE:{}", dtstart_str, rrule_str)
|
||||||
|
@ -74,12 +74,6 @@ fn obj_to_events(calendar: String, obj: &Object) -> Vec<Event> {
|
||||||
let now = Utc::now();
|
let now = Utc::now();
|
||||||
let start = now - Duration::days(RRULE_LOOKBACK);
|
let start = now - Duration::days(RRULE_LOOKBACK);
|
||||||
let end = now + Duration::days(RRULE_LOOKAHEAD);
|
let end = now + Duration::days(RRULE_LOOKAHEAD);
|
||||||
println!("rrule {}:\n{:?}", rrule_str.unwrap_or(""), rrule.into_iter()
|
|
||||||
.skip_while(|d| *d < start)
|
|
||||||
.take_while(|d| *d <= end)
|
|
||||||
.map(|dtstart| dtstart.naive_utc())
|
|
||||||
.collect::<Vec<_>>()
|
|
||||||
);
|
|
||||||
rrule.into_iter()
|
rrule.into_iter()
|
||||||
.skip_while(|d| *d < start)
|
.skip_while(|d| *d < start)
|
||||||
.take_while(|d| *d <= end)
|
.take_while(|d| *d <= end)
|
||||||
|
|
Loading…
Reference in New Issue