fix RRULE

This commit is contained in:
Astro 2021-05-26 20:16:25 +02:00
parent d6370aa55d
commit 351f0e057b
2 changed files with 3 additions and 7 deletions

View File

@ -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()

View File

@ -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)