| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
一个基于 Chrome Manifest V3 的智慧树平台自动刷题浏览器扩展,采用模块化架构设计,支持智能答题、错题枚举、题库管理等功能。
ZhiHuiShu/ ├── manifest.json # Manifest V3 配置文件 ├── background/ # 后台服务 │ └── background.js # Service Worker,题库存储管理 ├── content/ # 内容脚本(模块化架构) │ ├── content-main.js # 主入口,页面监听与路由 │ ├── utils.js # 工具函数(页面类型判断等) │ ├── interceptor.js # 网络请求拦截器 │ ├── page-interceptor.js # 页面数据拦截与解析 │ ├── page-handlers.js # 页面处理器(mastery/pointOfMastery) │ ├── auto-answer.js # 自动答题核心逻辑 │ └── ui.js # 用户界面组件 ├── popup/ # 弹出页面 │ ├── popup.html │ ├── popup.css │ └── popup.js ├── icons/ # 图标资源 └── data/ # 数据存储目录
下载或克隆本项目
git clone https://github.com/zjuatri/ZhiHuiShu.git打开 Chrome/Edge 浏览器
访问扩展管理页面:
开启右上角的 "开发者模式"
点击 "加载已解压的扩展程序"
选择项目根目录(包含 manifest.json 的文件夹)
访问智慧树平台
启动自动刷题
查看进度
清空题库
┌─────────────────────────────────────────────────────────────┐
│ 1. mastery 页面 │
│ - 查找未完成题目(custom-content div) │
│ - 点击按钮进入 pointOfMastery │
└─────────────────────┬───────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 2. pointOfMastery 页面 │
│ - 检测进度(charts-label-rate) │
│ - 100%: 点击返回 mastery,继续下一题 │
│ - <100%: 点击查看分析按钮进入 examAnalysis │
└─────────────────────┬───────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 3. examAnalysis 页面 │
│ - 拦截 getUserAnswers API 获取答案数据 │
│ - 更新题库(正确答案或错题枚举) │
│ - 刷新页面重新进入 exam │
└─────────────────────┬───────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 4. exam 页面 │
│ - 拦截 getQuestions API 获取题目 │
│ - 提取 examId 从题库加载答案 │
│ - 自动填写答案并提交 │
│ - 等待跳转到 examAnalysis │
└─────────────────────┬───────────────────────────────────────┘
↓
循环直至 100%
多选题答错时自动进行组合枚举:
// 示例:5 个选项的多选题
初始答案: [1, 2, 3, 4, 5] // 全选
第 1 次: [1, 2, 3, 4] // C(5,4) = 5 种组合
第 2 次: [1, 2, 3] // C(5,3) = 10 种组合
第 3 次: [1, 2] // C(5,2) = 10 种组合
...
直到找到正确答案{
questionId: "123456", // 题目ID
questionType: 1 | 2 | 14, // 1=单选, 2=多选, 14=判断
optionList: [...], // 选项列表
// ...
}{
examId: "exam_123", // 考试ID(题库键)
answerList: [
{
questionId: "123456",
answer: [1, 2, 3] // 统一数组格式
}
]
}所有关键操作都有详细日志输出(F12 控制台查看):
{
"exam_123": { // 键:examId
"123456": [1, 2], // 值:questionId -> answer
"123457": [1],
// ...
},
"exam_456": { ... }
}MIT License
zjuatri - GitHub
本项目仅供学习交流使用,请勿用于任何商业用途或违反平台规则的行为。使用本工具所产生的任何后果由使用者自行承担。
感谢所有为本项目提供建议和反馈的用户!
如有问题或建议,欢迎提交 Issue 或 Pull Request。
| Back | FazBrowse Home | New Git URL |