-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implementing Oputibamu API #40
Comments
Hello, |
I might have worded the "returns the timetable as one JSON response" a bit wrong, as I meant that it returns the table for one class per route, with all the nescessary stuff already in there. The response for the timetable looks like this: 11.json. The API is subject to change, and the day property is broken right now. |
Should the API return just raw timetable, array of rows of the timetable, or columns for every day? I don't know how how the current scraper does this. |
I've made a library that parses the timetable, and exposes it as a JSON API. It returns the timetable as one JSON response, which aside from the obvious thing like the lesson, differentiates between groups (allowing to easily add a group chooser to the timetable), gives the replacement data straight up in the lesson field, and gives the info about the temporary PRz classrooms (the building and the room number). From the planned features there is adding a short lessons bool to the response, and mapping the shortened names of subjects to their full ones (for example, "pr.urz.techn" will be mapped to "pracownia urządzeń techniki komputerowej" like it is in the register clients). For now, the API would have to be hosted somewhere else (or interfaced directly using Go), but it might get moved to being hosted on the school server once it gets principal's approval (and to get approved, we need to have a client actually using the API). Hosting the API would also allow other people to make timetable frontends easily.
https://github.com/Oreeeee/oputibamu
https://github.com/Oreeeee/oputibamu-api
I will provide the API documentation (it's really simple), if you are interested in implementing this, I might also help with adding this.
The text was updated successfully, but these errors were encountered: