Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

实验选课助手

为开放实验教学管理系统(lab2026)的「实验列表」页提供选课增强:智能筛选、余量排序、节次码翻译、课表冲突检测。只读增强,绝不自动提交任何预约请求。

两个发行版本功能一致,任选其一安装即可(都装会出现两层面板,不建议):

版本 适合人群 安装方式
油猴脚本版 已装 Tampermonkey 的用户 粘贴脚本代码或拖入 .user.js 文件
浏览器扩展版 Chrome / Edge 用户 开发者模式「加载已解压的扩展程序」

功能亮点

  • 🔍 关键字搜索:实验名 / 教师 / 地点
  • 🏷️ 星期、场次点选筛选:chip 标签显示真实时段(如「第2场 10:20」,悬停看完整时间)
  • ✅ 一键过滤:仅看可约 / 隐藏已满 / 隐藏冲突场次
  • 🔢 剩余人数优先排序,筛选条件自动记忆(刷新后保留)
  • 🈯 节次码人话徽标:3-1-2 → 「第3周 周一 第2场 10:20–11:50」
  • 📅 课表冲突检测:按真实时间重叠判定(重叠 ≥ 10 分钟才标红并注明冲突课程),支持 PDF 课表粘贴解析 / 周网格手动勾选
  • 🔁 已预约 + 已做实验自动同步:每次进列表页自动从「我的实验」页同步已预约名单、从「成绩查询」页同步已做完实验,行级标记「已预约」/「已做」徽标,默认隐藏已选/已做同类,一键抢课自动跳过已做实验

快速安装(油猴版)

  1. 浏览器安装 Tampermonkey 扩展
  2. Tampermonkey → 「添加新脚本」→ 粘贴 experiment-helper.user.js 全部内容 → Ctrl+S 保存
  3. 打开实验列表页,表格上方出现「实验选课助手(油猴版)」面板即安装成功

快速安装(扩展版)

  1. 地址栏进入 chrome://extensions(Edge 为 edge://extensions)
  2. 打开右上角「开发者模式」
  3. 「加载已解压的扩展程序」→ 选择本仓库的 extension 文件夹

目录结构

experiment-helper/
├── HANDOFF.md                        # 二次开发交接提示词(接手必读 / 可直接投喂 AI)
├── userscript/                       # Tampermonkey 单文件脚本
│   ├── experiment-helper.user.js
│   └── README.md
├── extension/                        # Chrome/Edge 扩展(Manifest V3)
│   ├── manifest.json
│   ├── shared.js                     # 节次码解析 / 课表解析 / 冲突检测(纯函数)
│   ├── content.js                    # 注入实验列表页与我的实验页
│   ├── panel.css / options.*         # 面板与课表设置页
│   └── vendor/                       # pdf.js(Apache-2.0,本地 PDF 解析用)
└── site-reference/                   # 目标网站源码快照(已脱敏,对照开发用)
    ├── pages/                        # 各页面 HTML(含路由对照表见其 README)
    ├── assets/                       # 站点自有 JS / CSS
    ├── data/                         # 实验列表真实数据样本(可当测试 fixture)
    └── WEBSITE_BUSINESS_LOGIC_ANALYSIS.md   # 业务逻辑完整分析报告

安全与隐私

  • 只读解析与界面增强,不自动提交任何预约请求,预约仍需手动点击
  • 不上传任何数据,课表与筛选条件仅存浏览器本地(GM storage / chrome.storage)

新人交接(换人使用 / 首次使用)

本工具不携带任何用户数据——课表、筛选条件、「不想选」名单全部存在你自己的浏览器本地,换人时原使用者的数据不会跟过来。新用户首次打开实验列表页,面板状态栏会依次显示四段确认信息,据此判断是否已就绪:

  1. 列表场次:第N周 — N 取自当前实验列表的真实周次,确认你打开的是正确周次的页面
  2. 已预约 N 个实验(自动同步) — 每次进列表页自动从「我的实验」页同步已预约名单(同源 fetch,不跳页)。新用户显示 已预约 0 个实验 属正常;悬停可看已预约实验名与节次明细。若同步失败则显示警告而非「已预约 0」,避免误导
  3. 已做 N 个(自动同步) — 自动从「成绩查询」页同步已做完的实验(有成绩记录的),对应行标记「已做」徽标且默认隐藏。选课时不会再误选已做过的实验
  4. 课表导入状态 — 显示 未导入课表 / 已导入 N 门课。冲突检测、个性化推荐等功能需导入课表后才生效

换人交接流程:原使用者「课表设置 → 一键清空课表」即可清除本地数据;新使用者重新导入自己的课表即可。两版(油猴 / 扩展)数据互不相通,如需迁移用「导出 / 导入 JSON」。

License

MIT

About

实验选课助手:实验选课页面的智能筛选/余量排序/课表冲突检测增强(Tampermonkey 油猴脚本 + Chrome/Edge 扩展),只读增强、不自动提交预约。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages