USST Schedule Sync

Export USST timetable to standard .ics calendar files

These are versions of this script where the code was updated. Show all versions.

  • v1.1.0 2026-03-08

    release v1.1.0

  • v1.0.4 2026-03-08

    feat: enhance configuration storage and logging

    • Refactor reminder program handling in storage to support atomic payloads.
    • Implement fallback mechanisms for legacy configurations.
    • Introduce dedicated tests for semester start storage and logging functionalities.
    • Update ICS generation to accommodate new reminder program structure.
    • Improve UI tests for reminder rule management and error handling.
    • Add comprehensive logging for configuration and export processes.
    • Ensure consistent formatting and normalization of text inputs.
  • v1.0.4 2026-03-07

    feat: refactor alarm system to reminder program

    • Replaced legacy alarm configuration with a new reminder program structure in storage.
    • Updated the ICS generation logic to compile reminders instead of alarms.
    • Introduced new types for reminders, including ReminderRule and ReminderProgram.
    • Modified UI components to handle reminder rules, including rendering and editing functionalities.
    • Updated tests to reflect changes in the reminder program structure and ensure proper functionality.
  • v1.0.4 2026-03-07

    feat: 更新 ICS 生成逻辑,优化文本处理和警报触发器格式

  • v1.0.4 2026-03-07

    release v1.0.4

  • v1.0.3 2026-03-07

    refactor: modularize alarm and period handling in config

    • Introduced cloneAlarm, clonePeriod, and cloneConfig functions in model.ts for better object cloning.
    • Updated defaultConfig to use cloning functions for periods and alarms.
    • Added normalization functions for alarms and periods in model.ts.
    • Refactored storage functions to utilize normalization and cloning.
    • Created a new valarm.ts file for alarm-related ICS generation logic.
    • Updated generateICS to use the new buildAlarmLines function for cleaner alarm handling.
    • Enhanced UI dialog to persist alarm edits and improve state management.
    • Added tests to ensure proper functionality of alarm handling and configuration persistence.
  • v1.0.3 2026-03-07

    release v1.0.3

  • v1.0.2 2026-03-07

    feat: Refactor timetable initialization and UI handling

    • Simplified the isTimetableReady function to check for timetable readiness.
    • Updated alert messages for better clarity.
    • Introduced ensureUI function to streamline UI creation and button injection.
    • Enhanced the init function to utilize the new ensureUI method.

    feat: Improve alarm configuration normalization in storage

    • Added normalizeAlarm function to standardize alarm configurations.
    • Updated getConfig to ensure alarms are properly normalized when retrieved from storage.

    feat: Enhance ICS generation with stable UIDs and alarm triggers

    • Implemented stableUid function for consistent UID generation across exports.
    • Updated alarm trigger formatting to comply with RFC standards.
    • Improved course text normalization and description handling in ICS generation.

    refactor: Clean up course extraction logic

    • Removed redundant source tracking in extracted courses.
    • Streamlined course extraction from grid and list formats.
    • Enhanced text normalization for course details.

    style: Update CSS class names for better clarity

    • Renamed CSS classes for active tab and panel states for consistency.

    test: Add unit tests for configuration and ICS generation

    • Created tests for alarm normalization in storage.
    • Added tests for ICS generation, ensuring correct handling of alarms and UID stability.
    • Implemented tests for dialog functionality and tab management.
  • v1.0.2 2026-03-07

    release 1.0.2

  • v1.0.1 2026-03-07

    refactor: remove timezone selection from export dialog

    • Removed the timezone selection dropdown from the export dialog UI.
    • Updated the ICS generation function to use a fixed timezone (Asia/Shanghai) instead of a user-selected one.
    • Adjusted related code in the dialog and export handling to reflect the removal of timezone selection.
    • Made various CSS adjustments to improve the dialog's appearance and responsiveness.
  • v1.0.1 2026-03-07

    feat(calendar): enhance ICS generation with week pattern analysis and multiple event handling

    feat(extraction): improve course extraction logic with deduplication and source tracking

    feat(weeks): add week pattern analysis utility for better scheduling

    feat(utils): introduce toICSDateTimeList for handling multiple date-time conversions

    chore(tests): add Vitest configuration for unit testing and coverage reporting

  • v1.0.1 2026-03-07

    updated dist

  • v1.0.0 2026-03-07

    refactor: migrate CSS styles to CSS modules and update dialog components

    • Replaced inline CSS styles with CSS modules in css.ts, dialog.ts, and export-dialog/dom.ts.
    • Updated class names in dialog and export dialog components to use styles from the new CSS module.
    • Refactored event listeners and status handling to utilize new class names.
    • Improved accessibility by adding appropriate ARIA attributes.
    • Enhanced the structure of the dialog and export components for better maintainability.
  • v1.0.0 2026-03-07

    refactor: restructure export dialog components and logic

    • Moved dialog DOM structure creation to a new module ui/export-dialog/dom.ts.
    • Extracted export handling logic into ui/export-dialog/export.ts.
    • Created state management functions for reading and refreshing dialog state in ui/export-dialog/state.ts.
    • Reorganized utility functions into separate files for better modularity: date, ICS formatting, ID generation, and week parsing.
    • Removed the old utils.ts file to streamline utility imports.
    • Updated createUI function to utilize the new modular structure, improving readability and maintainability.
  • v1.0.0 2026-03-07

    style: 统一代码格式,确保一致性

  • v1.0.0 2026-03-07

    refactor: clean up code formatting and ensure consistent style across files

    • Added missing newlines at the end of several files for consistency.
    • Reformatted code in multiple files to improve readability, including consistent indentation and line breaks.
    • Updated vite.config.ts to dynamically pull package metadata for better maintainability.
    • Enhanced the createUI function in dialog.ts for improved clarity and organization.
    • Refactored various functions to ensure consistent use of optional chaining and nullish coalescing.
  • v1.0.0 2026-03-07

    feat: updated some info

  • v1.0.0 2026-03-07 Imported from URL