aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/course.ml25
-rw-r--r--src/dune3
2 files changed, 10 insertions, 18 deletions
diff --git a/src/course.ml b/src/course.ml
index df5a27a..6534691 100644
--- a/src/course.ml
+++ b/src/course.ml
@@ -19,27 +19,17 @@ open CalendarLib
module J = Json_encoding
-let date_format = "%FT%T"
-
-let separator = Str.regexp_string "\r\n\r\n<br />\r\n\r\n"
-let group_prefixes = ["MAT-Agreg Interne "; "3EME ANNEE "; "2EME ANNEE ";
- "1ERE ANNEE "; "MAG1 "; "DEUST "; "M2 "; "M1 "; "L3P ";
- "L3 "; "L2 "; "L1 "]
-
-let startswith str prefix =
- String.(
- let lstr = length str and
- lprefix = length prefix in
- lstr = lprefix && equal str prefix
- || lstr > lprefix && equal (sub str 0 lprefix) prefix)
-
let check_groups str =
+ let group_affixes = ["MAT-Agreg Interne "; "3EME ANNEE "; "2EME ANNEE ";
+ "1ERE ANNEE "; "MAG1 "; "DEUST "; "M2 "; "M1 "; "L3P ";
+ "L3 "; "L2 "; "L1 "] in
List.fold_left
- (fun res prefix ->
- res || startswith str prefix) false group_prefixes
+ (fun res affix ->
+ res || Astring.String.is_prefix ~affix str) false group_affixes
let location_and_summary str category =
- let parts = Str.split separator str in
+ let sep = "\r\n\r\n<br />\r\n\r\n" in
+ let parts = Astring.String.cuts ~empty:false ~sep str in
let _, location, summary =
List.fold_right
(fun str (has_groups, location, summary) ->
@@ -57,6 +47,7 @@ let location_and_summary str category =
location, summary ^ " (" ^ category ^ ")"
let date =
+ let date_format = "%FT%T" in
Printer.Calendar.(
J.(conv (sprint date_format) (from_fstring date_format) string))
diff --git a/src/dune b/src/dune
index e87f710..1a1135a 100644
--- a/src/dune
+++ b/src/dune
@@ -1,6 +1,7 @@
(executable
(name ucs)
- (libraries calendar
+ (libraries astring
+ calendar
lwt.unix
cohttp-lwt-unix
ezjsonm