diff options
author | Alban Gruin | 2020-09-09 21:00:29 +0200 |
---|---|---|
committer | Alban Gruin | 2020-09-09 21:51:22 +0200 |
commit | d4c1438505ff79e3607ed5d2eb2ee8fbe203b298 (patch) | |
tree | a37a8392ea3fcfb2f3c35b5bdd2892720e20d623 /src/ucs.ml | |
parent | 5798c185bfa225a566af3f3bf6b7db2b73d816b1 (diff) |
course, ics: proper modules, proper datetime storage
Signed-off-by: Alban Gruin <alban at pa1ch dot fr>
Diffstat (limited to 'src/ucs.ml')
-rw-r--r-- | src/ucs.ml | 60 |
1 files changed, 11 insertions, 49 deletions
@@ -19,59 +19,21 @@ open Lwt open Cohttp open Cohttp_lwt_unix -module J = Json_encoding - -type course = { - start: string; - stop: string; - description: string; - category: string; - place: string } - -let encoding = - J.(conv - (fun _ -> ("", "", "", false, "", (), (), (), (), ""), - ([], None, (), (), (), (), ())) - (fun ((_id, start, stop, _allDay, description, (), (), (), (), category), - (_sites, _modules, (), (), (), (), ())) -> - {start; stop; description; category; place=""}) - (merge_objs - (obj10 - (req "id" string) - (req "start" string) - (req "end" string) - (req "allDay" bool) - (req "description" string) - (req "backgroundColor" unit) - (req "textColor" unit) - (req "department" unit) - (req "faculty" unit) - (req "eventCategory" string)) - (obj7 - (req "sites" @@ list string) - (req "modules" @@ option (list string)) - (req "registerStatus" unit) - (req "studentMark" unit) - (req "custom1" unit) - (req "custom2" unit) - (req "custom3" unit)))) - -let decode enc s = - let toks = - match s with - | "" -> `O [] - | s -> Ezjsonm.from_string s in - J.destruct enc toks - let body = - let parameters = "start=2020-09-01&end=2020-10-01&resType=103&calView=month&federationIds[]=IINS9CMA&colourScheme=3" in + let parameters = Uri.encoded_of_query + ["start", ["2020-09-01"]; "end", ["2020-10-01"]; + "resType", ["103"]; "calView", ["month"]; + "federationIds[]", ["IINS9CMA"]; "colourScheme", ["3"]] in let body = Cohttp_lwt.Body.of_string parameters and headers = Header.init_with "Content-Type" "application/x-www-form-urlencoded" in - Client.post ~body ~headers (Uri.of_string "https://edt.univ-tlse3.fr/calendar2/Home/GetCalendarData") >>= fun (_resp, body) -> + Client.post ~body ~headers (Uri.of_string "https://edt.univ-tlse3.fr/calendar2/Home/GetCalendarData") + >>= fun (_resp, body) -> Cohttp_lwt.Body.to_string body +let dump_date = CalendarLib.Printer.Calendar.to_string + let () = let body = Lwt_main.run body in - List.iter (fun {start; stop; description; category; place} -> - Printf.printf "%s\n%s\n%s\n%s\n%s\n\n" start stop description category place) - @@ decode (J.list encoding) body + List.iter (fun Ics.{start; stop; summary; category; location} -> + Printf.printf "%s\n%s\n%s\n%s\n%s\n\n" (dump_date start) (dump_date stop) summary category location) + @@ Course.decode body |