Task
Write a single function fn open_in_schedubuddy(courses: &[CourseId]) -> anyhow::Result<()>; using the open to pop-open a tab in the default browser with a bunch of courses populated.
Motivation
Schedubuddy is already a really good tool for selecting specific instances of a class and building up a semester schedule. There isn't much reason to rewrite it, aside from adding walk time optimization to the schedules or something. Even then it makes more sense just to try to contribute those changes directly to
Implementation
Take advantage of the save system in Schedubuddy and pass the courses as URL query parameters. For example:
https://schedubuddy.com/?term=1860&
courses=%5BCMPUT%20174%5D&
evening=1&
online=0&
start=10:00%20AM&
consec=2&
limit=30&
blacklist=%5B13921,10916,10912,13917,15386,13922,13919,13923,13920,16497,15387,16498,13924%5D```
Here is my current understanding of the parameters, a lot of them are quite obvious:
- `courses` is the list of courses separated by some separator. I don't know what it is but probably ',' make sure to check.
- `start` corresponds to the start time desired for the courses.
- `online` specifies wether online classes are allowed.
- `consec` is the number of classes that can be back to back.
- `limit` is the number of schedules to generate.
Ideally writing this up would just involve using the `Display` impl of `CourseId`, adding the separator and calling open. Though `blacklist` may end up being important and it would be good provide the upcoming term as the default `term` selection.
Task
Write a single function
fn open_in_schedubuddy(courses: &[CourseId]) -> anyhow::Result<()>;using theopento pop-open a tab in the default browser with a bunch of courses populated.blacklistandtermquery parameters.open_in_schdubuddy.Motivation
Schedubuddy is already a really good tool for selecting specific instances of a class and building up a semester schedule. There isn't much reason to rewrite it, aside from adding walk time optimization to the schedules or something. Even then it makes more sense just to try to contribute those changes directly to
Implementation
Take advantage of the save system in Schedubuddy and pass the courses as URL query parameters. For example: