diff options
author | Alban Gruin | 2020-09-12 14:00:54 +0200 |
---|---|---|
committer | Alban Gruin | 2020-09-12 14:00:54 +0200 |
commit | 31fa3ca1b6511b912beea7cd658ffe5a31048a6b (patch) | |
tree | 6b9bafdad331c5ed95905510a133f5ad9b95592b | |
parent | 216d0af10e49bd74a66aaad34475c5ef525e09b7 (diff) |
course: use Astring to split strings and to check for prefixes
Signed-off-by: Alban Gruin <alban at pa1ch dot fr>
-rw-r--r-- | src/course.ml | 25 | ||||
-rw-r--r-- | src/dune | 3 |
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)) @@ -1,6 +1,7 @@ (executable (name ucs) - (libraries calendar + (libraries astring + calendar lwt.unix cohttp-lwt-unix ezjsonm |