Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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)

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` 目录为空而报错