Skip to content

Export courses to Schedubuddy #12

@GenericConfluent

Description

@GenericConfluent

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 blacklist and term query 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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions