Age | Commit message (Collapse) | Author |
|
To simplify code down the line, this makes Ics.t public so everyone can
apply standard list processing functions onto it.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
As there may not be a location, make it an option type so we can easily
add a warning in the title of an event.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
The constructors Location and Summary were inverted, causing confusion
in the loc_and_sum_to_location and loc_and_sum_to_summary functions.
For instance, if no location was found, the summary would be empty (even
though it was found), and the location would be the name of the event.
This fixes these names and functions to work properly.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
In the future, we want to filter courses by its groups. To allow this,
we must parse and store the groups from celcat. This adds this feature.
We also dump them in the `COMMENT' field of the iCalendar files.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
It's cleaner to merge an actual obj with a unit instead of refering to
every field in the JSON feed, and makes the schema more flexible.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Currently, to find a course's summary and location, there is a
pattern matching over a ad-hoc 3-uple of a boolean and two strings.
To make it clear, this badly defined structure is replaced by an
actual ADT, `loc_and_sum', containing 4 cases:
- `Nothing', when the groups has not been found yet;
- `Groups', when the groups has been found by `check_groups'. This
means that the next line should be the course's location;
- `Location', when the location has been found. If there is no new
line to read, the string is the location, otherwise it's the
summary, and the next line should be the actual location;
- `Summary', when the location and summary has been both found. All
subsequent lines will be ignored.
A function is also added to convert a `loc_and_sum' to a couple of
string containing the location and the summary.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
To avoid creating buffers to decode an HTML entity, this create a
memoized version of `get_unicode' in hope to operate a bit faster and
reduce memory allocations.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Each affix is tested with a `List.fold_left', which means that the
list is traversed in order. Hence, the most likely results should be
at the beginning of the list, not at the end.
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|