aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlban Gruin2020-09-12 14:00:54 +0200
committerAlban Gruin2020-09-12 14:00:54 +0200
commit31fa3ca1b6511b912beea7cd658ffe5a31048a6b (patch)
tree6b9bafdad331c5ed95905510a133f5ad9b95592b
parent216d0af10e49bd74a66aaad34475c5ef525e09b7 (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.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