Skip to content

hsqwq/Ucloud_ICS_Exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ucloud ICS Exporter

一个 Manifest V3 浏览器扩展:在学校教学平台页面点击扩展按钮,抓取带截止时间的待办/作业,并生成可导入 Outlook、Apple Calendar、Google Calendar 等日历软件的 .ics 文件。

结构

  • src/contentScript.js: 接收 popup 指令,从当前网页抓取待办。
  • src/parser.js: 页面文本和截止时间解析器,支持自动识别和自定义 CSS 选择器。
  • src/ics.js: 将抓取到的待办转换为 .ics 日历文件。
  • src/background.js: 初始化和保存本地设置。
  • src/popup.*: 抓取和下载 .ics 入口。
  • src/options.*: 日程时长、提醒、标题前缀和选择器等选项。
  • ucloud.bupt.edu.cn/uclass: 内置 BUPT uCloud 首页待办抓取策略,会优先读取“待办”卡片并处理 1/2 这类分页。

添加到浏览器

  1. 确认项目文件都在本目录下,不需要打包构建。
  2. Chrome 用户打开 chrome://extensions,Edge 用户打开 edge://extensions
  3. 打开右上角“开发者模式”。
  4. 点击“加载已解压的扩展程序”。
  5. 选择本项目根目录,也就是包含 manifest.json 的目录。
  6. 固定工具栏里的扩展图标,方便在教学平台页面点击。
  7. 首次加载或修改代码后,如果扩展页提示需要刷新,点击扩展卡片上的刷新按钮。

使用

  1. 打开 https://ucloud.bupt.edu.cn/uclass/#/student/homePage
  2. 确认页面中能看到“待办”卡片。
  3. 点击扩展图标,先“抓取当前页面”,确认列表后点击“下载 .ics”。
  4. 双击下载得到的 .ics 文件,或在 Outlook 中通过“添加日历/从文件导入”导入。

抓取策略

根据当前页面批注,插件会优先使用这些结构:

  • 待办框:div.in-progress-section.home-card
  • 每个待办:div.in-progress-body > div.in-progress-item.home-inline-block
  • 分页控件:div.in-progress-header .header-control

.ics 导出规则

  • 每个待办会生成一个 VEVENT
  • 默认导出为全天日程,日程日期取待办截止时间所在日期。
  • 可在设置页关闭“导出为全天日程”,关闭后会导出为普通时间段日程。
  • 普通日程的结束时间等于待办截止时间,开始时间默认为截止前 30 分钟,可在设置页调整。
  • 默认提醒为日程开始前 60 分钟,可在设置页调整;设为 0 则不写入提醒。
  • 普通时间段日程以 UTC 写入 .ics,导入日历后会按本机或日历账户时区显示。
  • 不需要 Microsoft Entra 应用、Client ID、Graph 权限或网页登录授权。

如果自动抓取不稳定,可以在设置页切换到“自定义 CSS 选择器”:

  • 待办条目选择器:每个任务卡片/表格行的选择器。
  • 标题选择器:在条目内部定位标题。
  • 截止时间选择器:在条目内部定位截止时间。

About

一个可以将BUPT教学云平台待办导出为.ics形式的浏览器插件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors