ekreta-rs: E-Kréta api client in Rust
WIP: do expect breaking changes
E-Krétais an awful Hungarian electronic school administration system
API
-
serdestructbindings for following: -
school fetching
-
token
-
user info fetch
-
evaluations/grades
-
timetable
-
messages
- attachments
-
announced test
-
absences
-
classes/groups the user is a part of
Disclaimer
logging is enabled using the log crate, mostly for requests in account.rs,
those requests/responses contain sensitive data, such as log::debug!("{token_json}");.
It should be fine as long as you either:
- don't use a crate that logs: eg.:
env_logger,log4rs,fern - don't enable
log::LevelFilter::Debugor higher - don't store/share your/other's personal information without consent
Secret weapons
- if you'd like to introduce a bug (in some cases, feature in others: see rsfilc, when one would like to explicitly use the cache), which would make this crate unable to access the internet, export an env variable like following: one-time thing:
NO_NET=1 <BINARY, eg.: rsfilc> NO_RENAME=1can be used to turn off renaming
Dependents
This library is written to provide bindings between Rust and the E-Kréta REST API.
It's primarily (and only at this time) used in RsFilc.
Acknowledgements
The API was written based on these documentations
-
nzx.hu/kreta-api, which is extremely helpful, and I'd especially like to thank it's the creator, for letting us know about this discord server, where csboo received help and written the new login API
-
the undescribably ugly json structs were converted to rust with this tool: transform.tools