feat(event-predicates): warn on unhandled recurrence overrides and multiple masters
- Add `warn_unhandled_recurring` collector that emits a warning when `RECURRENCE-ID` overrides are present but not yet handled, emitting the master event as-is - Register `warn_unhandled_recurring` in `all_collectors` - Warn when more than one master event (no `RECURRENCE-ID`) is found for a UID in `separate_master_and_recurrence`, using only the first
This commit is contained in:
@@ -326,8 +326,22 @@ RRULE: (`Weekly, (Some `Until (`Utc (2026-07-01 09:00:00 +00:00))), None, [])
|
||||
| Some (_, recurs) -> debug_print_of_recurrence_and_skip ev recurs
|
||||
| None -> Ok rem
|
||||
|
||||
let warn_unhandled_recurring rem ev : (Remind.rem, error) result =
|
||||
if List.length rem.Remind.recurring > 0 then
|
||||
Printf.eprintf "Warning: RECURRENCE-ID overrides present but not handled (master emitted as-is)\t\t\tUID: %s\n"
|
||||
(Utils.get_uid ev);
|
||||
Ok rem
|
||||
|
||||
let all_collectors : collector list =
|
||||
[ collect_uuid; collect_summary; collect_start_end_duration; collect_exdates; yearly_simple_date; simple_recurrence ]
|
||||
[
|
||||
collect_uuid;
|
||||
collect_summary;
|
||||
collect_start_end_duration;
|
||||
collect_exdates;
|
||||
yearly_simple_date;
|
||||
simple_recurrence;
|
||||
warn_unhandled_recurring;
|
||||
]
|
||||
|
||||
let remind_of_event (source : string) (ev : Icalendar.event list) : (Remind.rem, error) result =
|
||||
let () = if List.length ev = 0 then failwith "No events provided" in
|
||||
|
||||
Reference in New Issue
Block a user