-
Notifications
You must be signed in to change notification settings - Fork 1
Export courses to Schedubuddy #12
Copy link
Copy link
Open
Labels
Priority: MediumThis could block progess laterThis could block progess laterType: Good First IssueGood for newcomersGood for newcomers
Description
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.
- Figure out the format expected by the
blacklistandtermquery parameters. - Write the body of
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:
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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Priority: MediumThis could block progess laterThis could block progess laterType: Good First IssueGood for newcomersGood for newcomers