[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81161":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":12,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":17,"fork":17,"defaultBranch":18,"hasWiki":19,"hasPages":17,"topics":20,"createdAt":10,"pushedAt":10,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":15,"starSnapshotCount":15,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},81161,"NextTHUxk","smartThise\u002FNextTHUxk","smartThise","下一代选课 — 清华本科生选课增强浏览器扩展","",null,"JavaScript",29,3,9,0,38.81,false,"main",true,[],"2026-06-12 04:01:32","# NextTHUxk — 下一代选课\n\n> 清华本科生选课增强工具。在原选课页面叠加全屏工作台，提供课程搜索、课表预览、暂存管理、AI 排课等功能。\n\n## 安装\n\n> **建议使用方式二（解压加载）**。Chrome \u002F Edge 已收紧外部 .crx 安装策略，直接拖入 .crx 可能被拦截。解压加载在所有浏览器均可正常使用。\n\n> 🚀 校内访问 [git.tsinghua.edu.cn\u002Fgjl25\u002FNextTHUxk](https:\u002F\u002Fgit.tsinghua.edu.cn\u002Fgjl25\u002FNextTHUxk) 下载速度更快。\n\n### 方式一：.crx 拖入安装（Chrome \u002F Arc）\n\n1. 从 [Releases](https:\u002F\u002Fgithub.com\u002FsmartThise\u002FNextTHUxk\u002Freleases) 下载 `NextTHUxk.crx`\n2. 浏览器打开 `chrome:\u002F\u002Fextensions`，右上角开启「开发者模式」\n3. 将 .crx 文件拖入浏览器窗口，确认安装\n4. 若提示无法安装，请改用方式二\n\n### 方式二：解压加载（推荐 \u002F 所有浏览器通用）\n\n1. 从 [Releases](https:\u002F\u002Fgithub.com\u002FsmartThise\u002FNextTHUxk\u002Freleases) 下载 `NextTHUxk.zip` 并解压\n2. 浏览器打开扩展管理页（Chrome: `chrome:\u002F\u002Fextensions`，Edge: `edge:\u002F\u002Fextensions`），开启「开发者模式」\n3. 点击「加载已解压的扩展程序」，选择解压后的文件夹\n\n## 使用\n\n进入清华选课网站（zhjwxk.cic.tsinghua.edu.cn 或 zhjw.cic.tsinghua.edu.cn），右下角出现 ✨ 按钮，点击即可打开全屏工作台。\n\n![Preview](Preview.png)\n\n## 功能概览\n\n### 课程浏览与搜索\n\n- 全校课程目录搜索（按课名、课号、教师模糊匹配）\n- 按类型快速筛选：**必修 \u002F 限选 \u002F 体育 \u002F 已选 \u002F 我的队列 \u002F 可选**\n- 高级筛选：按**学分数**、**周几**、**第几大节**精确过滤\n- **时间冲突筛选**：按与当前预览课表是否冲突过滤\n- 每门课显示余量、竞争热度、各志愿排队人数\n\n### 中签概率计算（预选阶段）\n\n- 每门课程自动计算**所有合法选法的抽中概率**，红黄绿三色直观展示\n- 概率模型基于志愿级联机制：容量按志愿优先级递减分配，结合各志愿报名人数估算中签率\n- 课程卡片、暂存区、草稿列表、预览课表均显示概率信息\n- 修改课程类型或志愿号后概率实时刷新\n\n### 课余量实时数据（抽签结果阶段）\n\n预选抽签结果出来后，系统自动切换到课余量模式：\n\n- **实时课余量**：从教务系统获取所有课程的容量、剩余座位和排队人数\n- **我的队列**：显示个人候补队列，包含队列排名和总排队人数（如「排队第121名 \u002F 共185人」）\n- 课程卡片显示余量\u002F排队\u002F排入希望值，替代预选阶段的概率显示\n- 课表预览中候补课程显示排队状态，已选课程显示「已选」\n- 草稿\u002F暂存在课余量模式下也显示余量队列信息\n- 独立的「刷新队列」按钮，一键更新课余量和排队数据\n\n### 时间冲突检测\n\n- 所有课程卡片自动检测与当前预览课表（正选\u002F草稿\u002F暂存）的时间冲突\n- 冲突信息直接显示在卡片上（如「⚠ 冲突: 周三3-4节 数据结构」）\n- 支持筛选「仅无冲突」或「仅冲突」课程\n\n### 选课 & 退选\n\n- 课程类型选择遵循选课规则：必修课可选必修\u002F限选\u002F任选；限选课可选限选\u002F任选；任选课只能任选；体育课只能体育\n- 直接在卡片上选择课程类型和志愿号，点击「选课」提交\n- 已选课程可**调整志愿顺序**（▲▼），系统自动校验志愿名额上限\n  - 必修 \u002F 限选 \u002F 任选：1 志愿最多 1 门，2 志愿最多 2 门\n  - 体育：1 志愿最多 1 门，2 志愿最多 1 门\n- 3 志愿不限数量\n- 操作后实时刷新选课状态\n\n### 课表预览\n\n- 自动生成已选课程的**周课表**视图（周一至周日 × 第 1-12 大节）\n- 时间冲突标红显示\n- 可预览暂存区或任意草稿的课表，一键切回正式课表\n- 课表单元格显示课程名称和教师姓名\n- **可直接在课表上操作**：鼠标悬停显示 ✕ 按钮，点击可退选（已选课）、从暂存移除、从草稿删除\n- 暂存\u002F草稿预览课表按概率着色（预选阶段：绿\u002F橙\u002F红；课余量阶段：显示余量\u002F排队人数）\n\n### 暂存课表（草稿）\n\n核心创新功能：在不直接提交选课的前提下，预先编排多套课表方案。\n\n- 将课程「暂存」到草稿区，**最多保存 5 张草稿**\n- 暂存区每门课可独立调整课程类型和志愿号，实时显示所有选法的概率\n- 已选课程也可一键转化为新的暂存草稿\n- 草稿支持**展开查看全部课程列表**，可逐门调整类型\u002F志愿或删除\n- 「**提交选课**」：自动退选所有已选课，再按草稿内容一次性选入\n- 提交后草稿保留，不会自动删除\n- **导出 \u002F 导入**：复制 JSON 分享给同学，对方导入后可直接提交\n- 自动检测草稿内课程的时间冲突\n\n### 培养方案检测\n\n- 查看所有培养方案课组及完成进度\n- 自动检测：已选课 + 暂存课 + 所有草稿是否覆盖方案要求\n- 特殊规则：\n  - 体育课互认：任一体育课可满足任意体育方案要求\n  - 英语(3) 即「英语进阶读写」，可由「第二外国语」替代\n  - 英语(1)(2) 即「英语阅读写作\u002F听说交流(ABC)」，不可由第二外国语替代\n\n### AI 排课\n\n- 填入兼容 OpenAI 格式的 API 地址、模型名称和 Key\n- AI 自动读取：当前必修 + 体育课程目录、已选课程、所有暂存草稿、个人偏好\n- 生成推荐方案并自动存入暂存草稿区\n- 对任选 \u002F 通识课仅给出方向建议，不硬选具体课程\n\n### 自动更新\n\n- 定期检查 GitHub Releases 是否有新版本\n- 发现更新时在顶部显示提示横幅\n- 也可手动点击「检查更新」\n\n### 学期管理\n\n- 自动从教务系统 URL 检测当前选课学期\n- 支持手动切换学期（点击右上角学期标签）\n- 切换后自动清空缓存并重新拉取数据\n\n## 数据与隐私\n\n- 选课操作走原系统表单提交，与手动操作完全等价\n- 个人数据（草稿、API 配置等）全部存储在浏览器本地\n- 扩展代码中不包含任何个人数据\n- 课程目录和志愿数据有缓存机制：\n  - 课程目录：首次加载后缓存，手动刷新时更新\n  - 志愿排队数据：每日 8:00 \u002F 12:00 \u002F 16:00 \u002F 20:00 自动刷新\n  - 已选课程：每次打开工作台实时获取\n\n## 注意事项\n\n- 仅在清华选课网站域名下生效（zhjwxk \u002F zhjw \u002F webvpn）\n- 需要已登录教务系统的浏览器 session\n- 体育课的志愿信息独立于其他课程类型，显示规则略有不同\n\n## 文件结构\n\n```\n├── manifest.json        # 浏览器扩展配置 (Manifest V3)\n├── content.css          # 全部样式\n├── content.js           # 入口：HTML 模板 + Shadow DOM + 事件绑定 + 启动流程\n├── src\u002F\n│   ├── config.js        # 命名空间 NX、常量、工具函数、存储、网络\n│   ├── data.js          # 数据抓取与解析（课程目录、志愿、选退课 API）\n│   ├── probability.js   # 中签概率计算、志愿格式化\n│   ├── state.js         # 暂存\u002F草稿管理、课表解析、冲突检测、选课状态\n│   ├── render.js        # 所有渲染函数 + 筛选逻辑\n│   ├── ai.js            # AI 搜索 + 智能排课\n│   └── update.js        # 版本更新检查\n├── popup.html           # 扩展弹出页\n├── popup.js             # 弹出页逻辑\n└── README.md            # 本文件\n```\n\n## License\n\nMIT\n","NextTHUxk 是一款专为清华大学本科生设计的选课增强浏览器扩展。该工具在原选课页面上叠加了一个全屏工作台，提供了课程搜索、课表预览、暂存管理及AI排课等核心功能。通过模糊匹配和高级筛选选项，用户可以快速找到符合需求的课程，并实时查看课程余量和中签概率。此外，它还支持多套课表方案的预先编排与保存，帮助学生更高效地规划学期课程。适用于清华大学学生在选课期间使用，尤其适合需要精细化管理和优化选课策略的学生。",2,"2026-06-11 04:03:44","CREATED_QUERY"]