kreta api interface rust-ban mert miert ne
es tok sok mas is amugy
see all your lessons, exams, homework, etc in your native calendar app
self-hosted on-demand timetable to calendar service
you can try it out locally (after cloning of course) with
cargo run -p timetable-to-ical-servernavigate to the url it tells you and the rest is pretty straight forward
library to convert kreta timetables info into the industry standard ical calendar format
it has plenty of options with sensible defaults
minimal api for querying data from the e-kreta system
- logging in and acquiring tokens, refreshing tokens
- timetable bulk querying and deserializing
- homework bulk query
- exams bulk query
- absence bulk query
- workaround for query time constraints using the
timerangefeature
anything else: no, pull requests welcome
small crate that pokes around your absences to extract statistics and display them in html form. html statistics can be queried through a timetable-to-ical-server server
nowhere in the timetable-to-ical-server stack does your password escape your request unencrypted. i don't care about your grades.
however, to avoid freaking out the kreta idp server, your access tokens are cached, and if possible reused and refreshed rather than doing the whole login sequence again. this means that these data points are saved across requests in memory:
- your username (oktatási azonosító)
- your school's id
- a sha256 hash of your password, to ensure later requests aren't using a false password
- your access & refresh tokens
you can review the relevant code here
when using the default k8 credentials system, your login details are encrypted using age, only decrypted on the server, making the .ical requests safe(r) over bare http. a k8 generated from one timetable-to-ical-server instance will not be vaild on another.
timetable requests aren't cached, so one timetable.ical request = one kreta timetable query, and
one combine.ical request = 8 kreta api calls (currently)
one absences.html request = many kreta api calls