diff options
| -rw-r--r-- | src/course.ml | 16 | 
1 files changed, 10 insertions, 6 deletions
| diff --git a/src/course.ml b/src/course.ml index 0c93075..9f16646 100644 --- a/src/course.ml +++ b/src/course.ml @@ -20,7 +20,6 @@ open CalendarLib  module J = Json_encoding  let date_format = "%FT%T" -let default_date = Calendar.make 1970 1 1 0 0 0  let separator = Str.regexp_string "\r\n\r\n<br />\r\n\r\n"  let group_prefixes = ["MAT-Agreg Interne "; "3EME ANNEE "; "2EME ANNEE "; @@ -63,16 +62,19 @@ let date =  let encoding =    J.(conv -       (fun _ -> (default_date, default_date, "", "", (), (), ()), +       (fun _ -> (None, None, "", "", (), (), ()),                   ((), (), (), (), (), (), (), (), (), ()))         (fun ((start, stop, description, category, (), (), ()),               ((), (), (), (), (), (), (), (), (), ())) ->           let location, summary = location_and_summary description category in -         Ics.Event.make start stop summary location) +         match start, stop with +         | Some start, Some stop -> +            Some (Ics.Event.make start stop summary location) +         | _, _ -> None)         (merge_objs            (obj7 -             (req "start" date) -             (req "end" date) +             (req "start" @@ option date) +             (req "end" @@ option date)               (req "description" string)               (req "eventCategory" string)               (req "id" unit) @@ -95,4 +97,6 @@ let decode s =      match s with      | "" -> `O []      | s -> Ezjsonm.from_string s in -  Ics.make @@ J.destruct (J.list encoding) toks +  J.(destruct (list encoding) toks) +  |> List.filter_map (fun (event: Ics.Event.t option) -> event) +  |> Ics.make | 
