Releases: smartThise/NextTHUxk
Releases · smartThise/NextTHUxk
v1.3.4
v1.3.3
性能优化
- 缓存命中秒加载: 不再每次刷新都 re-merge catalog+volData,直接使用缓存的合并课程数据
- 减半 localStorage 占用: 不再同时存储 raw catalog 和 raw volData,只存 catalog + merged courses,节省 30-50% 空间
- 智能降级: 旧格式数据无 courses 缓存时自动 re-merge,无需手动处理
- selected / queue / candidates 仍然是实时单请求,不影响数据新鲜度
技术细节
launch()三种路径: 首次全量爬取 → volData过期只爬volData → 缓存命中零爬取staticData格式:{ ver, plan, catalog, courses, volTs, ts }(去掉了 volData 字段)
v1.3.2
排队选课全套功能 + 退出队列 + 即时刷新
🆕 排队选课(自动两步流程)
- 已满课程点击"排队选课"后,自动完成两步提交:
POST m=saveRxKc→ 服务器返回"是否排队?"- 1.5s 后自动
POST m=saveBksKcDl(使用响应页面的新 token)
- 验证延迟 2s 确保候补列表更新后再显示结果
🆕 退出队列
dropCourse自动区分候补课程 vs 已选课程- 候补课程:
GET dlSearchTab+POST m=dlDelete - 已选课程:原有
deleteYxk逻辑不变 - 按钮文案保留原始文本(退出队列/退选/删除)
🐛 修复
- 即时刷新:排队/退选后立刻更新课程卡片、课表预览、队列筛选
- 鬼影课程:队列/已选筛选器改用
code+seq精确匹配 - 草稿提交延时增至 2s 配合排队流程
v1.3.0 — 代码重构 + AI 找课 + 筛选增强
v1.3.0 更新内容
🔧 代码重构
- 将原来 3000 行单文件 content.js 拆分为 8 个模块,各司其职:
src/config.js— 命名空间、常量、工具函数、存储、网络src/data.js— 数据抓取与解析(课程目录、志愿、选退课 API)src/probability.js— 中签概率计算、志愿格式化src/state.js— 暂存/草稿管理、课表解析、冲突检测src/render.js— 所有渲染函数 + 筛选逻辑src/ai.js— AI 搜索 + 智能排课src/update.js— 版本更新检查content.js— 入口:HTML 模板 + Shadow DOM + 事件绑定
- CSS 回归独立文件 content.css,从 JS 模板字符串中提取出来
- 命名空间
NX统一管理共享状态和函数
🔍 独立 AI 课程搜索
- 新增 AI 课程搜索推荐面板,基于当前筛选结果 + 预览课表,AI 在不冲突的课程中推荐
- 支持自然语言描述需求(如「想选一门好拿A的通识课」)
🎛️ 筛选栏增强
- 新增筛选维度:
- 通识课组筛选(人文/社科/艺术/科学)
- 课程特色筛选(专题研讨课、全外文授课、实践课等 18 种)
- 年级筛选
- 本科余量 / 研究生余量筛选
- 选课文字说明文本搜索
v1.2.7
v1.2.7 — 课余量实时数据 + 候补队列 + 时间冲突检测
新功能
- 课余量实时数据:预选抽签结果出来后自动切换到课余量模式,显示所有课程的容量、剩余座位和实时排队人数
- 我的队列:显示个人候补队列,包含队列排名(如「排队第121名 / 共185人」)
- 时间冲突检测:所有课程卡片自动检测与当前预览课表的时间冲突,支持「仅无冲突」筛选
- 刷新队列按钮:课余量模式下独立刷新课余量和排队数据
- 草稿/暂存课余量:课余量模式下草稿和暂存也显示余量队列替代概率
改进
- 课余量模式下自动跳过志愿确认弹窗
- 已选/队列数据并行获取,加载更快
- 课表预览中候补课程显示排队状态而非「已选」
降级兼容
- 预选阶段(无课余量数据)完整保留原有志愿概率系统
v1.2.6
v1.2.6 更新
新增
- Firefox 浏览器支持:跨浏览器 API 归一化(
_browser),同时兼容 Chrome / Edge / Firefox manifest.json添加browser_specific_settings.gecko,支持 Firefox 临时加载安装
改进(自 v1.2.5)
- 体育课按一级课表属性列为空识别,覆盖所有体育课类型
- 志愿确认可视化弹窗替代原始
prompt() - 服务端真实志愿
confirmed标记,已确认数据不再重复弹窗
v1.2.5
v1.2.5 更新
改进
- 体育课识别优化:一级课表中属性列为空即识别为体育课,不再依赖关键词列表,覆盖所有体育课类型
- 志愿确认弹窗:新增可视化弹窗替代原始
prompt(),每门课程独立下拉选择志愿,界面更清晰 - confirmed 标记:服务端返回的真实志愿数据标记为已确认,永不重复弹窗;用户手动确认的可在下次启动时再次调整
v1.2.4
v1.2.4
修正
- 优先志愿格式修正为
(优先人数)1志愿,2志愿,3志愿如(46)5,15,29 - 志愿显示正确展示优先人数:优先46/5/15/29
- 概率级联中优先志愿作为任选的第0志愿(最高优先级)参与计算