Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/skye-z/auto-mooc
Auto Mooc Tool (Service)
https://github.com/skye-z/auto-mooc
auto-test beginner-friendly golang mooc playground
Last synced: about 11 hours ago
JSON representation
Auto Mooc Tool (Service)
- Host: GitHub
- URL: https://github.com/skye-z/auto-mooc
- Owner: skye-z
- License: gpl-3.0
- Created: 2023-09-19T13:10:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-18T07:33:40.000Z (8 months ago)
- Last Synced: 2024-06-21T16:52:39.112Z (5 months ago)
- Topics: auto-test, beginner-friendly, golang, mooc, playground
- Language: Go
- Homepage:
- Size: 394 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Auto Mooc 2 - 第二代自动化慕课工具
[![version](https://img.shields.io/badge/Go-1.21+-%2300ADD8?style=flat&logo=go)](go.work)
[![license](https://img.shields.io/badge/License-GPL%20v3.0-orange)](LICENSE)> 请注意: 本项目仅供交流学习自动化测试技术, 滥用造成的后果请自行承担!
你现在所在的是 `Auto Mooc 2` 的服务端项目.
其他 `Auto Mooc 2` 项目请点击下方链接前往:
* 网页端: [WebPage](https://github.com/skye-z/auto-mooc-page)
* 客户端: [Client](https://github.com/skye-z/auto-mooc-app)## 前言
本项目在 [v1](https://github.com/skye-z/auto-mooc/tree/v1) 的基础上优化迭代而来, 放弃了部署复杂且性能较弱的 `playwright`, 换为 `chromedp`.
同时进一步简化了使用步骤降低上手难度, 加入更加完善的课业管理服务.
本项目结构简单, 适合Go语言初学者或自动化技术初学者参考学习.
## 使用说明
使用流程:
1. 扫码登陆
2. 选择科目开始上课
3. 收取停止通知
4. 完成答题测验
5. 刷新页面(任务此时已经停止)
6. 选择科目重新开始上课### 常见问题
#### Q: 启动后报错...Chrome...PATH
出现类似报错均为未检测到 Chrome 浏览器, 请检查是否正确安装 Chrome 浏览器
#### Q: 扫码后登陆成功但还是停留扫码页面
请检查扫码微信是否已绑定慕课网站账户.
检查方法: 浏览器打开慕课网站, 点击登陆, 选择微信登陆, 登陆后若跳转绑定页面即为未绑定账户
#### Q: Windows下双击打开没有响应或弹出空白的黑窗口
请按照下列说明检查:
* 工具所在目录的路径不存在中文
* 工具目录下没有其他无关文件
* 没有在压缩包中双击打开#### Q: 开始上课了, 但是显示的图片没有变化
上课任务控制页面显示的是静态的任务截图, 如果需要刷新截图请点击左下角的刷新按钮.
如果刷新多次依旧没有变化, 请点击右下角橙色的恢复任务按钮.
#### Q: 遇到测验上课停止了怎么办
请在APP或慕课网站完成测验, 然后回到工具中刷新页面(不是刷新截图)或者点击停止任务, 然后选择科目重新开始上课
> 当你收到任务停止通知时上课就已经停止了, 页面需要刷新浏览器才能更新, 当然你点击停止任务直接回到选科页面也行
## 开发文档
👏 欢迎各位同学贡献代码
### 目录结构
```txt
- /page 前端页面
- /service HTTP服务目录
- script.js 页面注入脚本
- init.go 初始化服务
- user.go 用户服务
- work.go 任务服务
- course.go 课程服务
- subject.go 科目服务
- setting.go 设置服务
- /util 公共组件目录
- push.go 推送工具
- config.go 配置工具
- response.go 响应工具
- go.mod 项目依赖
- go.sum ~
- main.go 项目入口
```### API 接口
```txt
// 获取登录二维码
GET /api/login/code// 获取二维码状态
GET /api/login/state// 获取登录状态
GET /api/login// 获取用户名称
GET /api/user// 获取科目列表
GET /api/subject// 选择科目
GET /api/subject/select?id=科目编号// 获取课程列表
GET /api/course?id=科目编号// 查询任务状态
GET /api/work// 任务开始
GET /api/work/start// 任务停止
GET /api/work/stop// 任务截图
GET /api/work/screen// 获取推送设置
GET /api/push// 更新推送设置
POST /api/push
FORM enable 是否启用推送
path 消息服务器地址
```### 运行须知
执行 `go run main.go` 即可运行程序, 但是在这之前你需要先进入 `page` 目录执行 `yarn run build` 构建页面
否则将会因 `/page/dist` 目录为空而报错