* feat: export schedule function to be added to handler
* feat: use UserScheduleStore and return json
* feat: download functionality
* feat: oh wow we already have a blob download util that is very very nice
* feat: return empty json if none found
* feat: import function completion
* feat: file uploading done
* feat: new input component-stories made-settings input replaced with component
* feat: attempt 1 to hook settings.tsx to importSchedule
* feat: it works horray aka using right Course constructor it works
* chore: fix jsdoc
* chore: comments and debug style
* docs: extra comment
* feat: name of schedule more user friendly
* feat: reworked how schedule is passed and check for file being schedule
* feat: color is kept on import
* fix: add sendResponse to exportSchedule
---------
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: first button attempt
* feat: fetching each course code
* feat: adding courses function from there but idk where to get the active schedule from
* docs: todo
* feat: retrieved active schedule
* feat: button tactics
* feat: add support for my.utexas.edu
* feat: inject button into MyUT
* feat: refactor code to render components dynamically based on site
* feat: scrape course ids from MyUT and remove duplicates
* feat: site support links for classlist
* feat: add utility function to add course by URL
* feat: support additional case for course cal
* feat: duplicates
* chore: cleanup
* feat: temporary checkpoint
* feat: reroute to use new add course by url
* feat: linking to new function, cleaning up, adding messaging for course url add
* chore: unused import
* feat: relinking addCourse function to the button fingers crossed
* feat: we did it!
* chore: remove comment
* chore: cleanup cleanup
* feat: tried to handle the async stuff because of that small bug but nothing fixed. doesnt hurt tho
* feat: i have fixed it holy kevinnn
* chore: delete unused file and organization
* chore: removed unused log
* feat: better log for course add
* chore: refactor via data destructuring
* chore: pass component as prop via React.ComponentType
---------
Co-authored-by: Ethan Lanting <ethanlanting@gmail.com>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>
* feat: add CacheStore for GitHub stats and use names instead of usernames
* fix: only cache name for successful API queries
* chore: linting
* chore: refactor any with unknown and add jsdocs
* fix: use cached endpoint to avoid rate limiting issues
* fix: code style
* chore: add type assertion
* fix: use correct type
* Revert "fix: use correct type"
This reverts commit 74956c12f3.
* fix: use correct type
* fix: use URL Web API
* fix: add CONTRIBUTORS_API_ROUTE constant
---------
Co-authored-by: Derek Chen <derex1987@gmail.com>
Co-authored-by: doprz <52579214+doprz@users.noreply.github.com>