dsh-cx-learn:把超星学习通看课做成可调度、可观测的后台任务

前言

在 DeepSeek Harness(DSH)里做联网或自动化类能力时,常见做法是写脚本挂 cron,或自己拼浏览器驱动。超星学习通这类页面有防挂机弹窗、章节切换、弹题作答等状态,纯脚本很难统一启停、看日志,也和 DSH 里已配好的 LLM 脱节。dsh-cx-learn 是社区维护者 forgotfish 发布的 DSH 插件(分类:联网工具),用 CDP 驱动真实 Chromium,把「看课推进」收成带设置页和 HTTP 接口的后台任务,支持 AI 答题与人工答题,并可自选浏览器内核与模型。下文按安装、配置与典型流程说明用法;事实以 GitHub 仓库 README 为准,当前 package 版本为 0.2.0,MIT 许可证。

这是什么

dsh-cx-learn 的定位是:DeepSeek Harness 插件,超星学习通自动刷课与作业答题(README 表述为自动看课与弹题作答)。引擎零 npm 依赖,仅用 Node 内置模块,不引入 puppeteer / playwright。插件不碰后端:不篡改数据、不伪造进度上报、不调用任何进度写接口;检测到人脸识别、活体或验证码会立即停止,不做绕过。运行期数据落在 $DSH_HOME/cx-learn/(配置、日志、登录态、浏览器 profile 按用户隔离)。

核心功能

README 将能力按优先级归纳如下,并附带章节模式与拟人化节奏(随机延迟集中在 CONFIG,可统一调节)。

能力 说明
P0 播放态检测 视频暂停则恢复播放;关闭防挂机弹窗
P1 自动切节 当前节自然结束后自动切下一节
P2 弹题作答 ai 模型代答,或 manual 暂停等人工
P3 跳过已完成 识别已看完的任务点并跳过
P4 章节模式 continue_chapters 连播 / current_chapter 只跑当前章,带 maxSections 上限

扫码登录:设置页显示二维码,用手机学习通 App 扫一次,登录态可长期复用。

其他特点(README「特点」节):内核与插件解耦(共享目录换机器即可);模型来源读取 DSH 已配置的服务商与模型,另支持内置智谱 GLM(需 ZHIPU_API_KEY);host 半端负责进程生命周期与 HTTP,引擎子进程通过 loopback 回调 host 使用 ctx.llm 答题。

安装与启用

插件以当前 DSH 进程权限运行,安装前应自行审阅源码与 MIT 许可证,并知悉平台服务条款与免责声明(自动化可能导致进度退回或账号处罚)。

方式一:DSH 插件市场

在 DSH 插件管理页搜索 dsh-cx-learn,安装后启用。

方式二:手动安装

# 克隆到 DSH 的插件目录(路径按你的部署调整)
git clone https://github.com/forgotfish/dsh-cx-learn.git

# 让 profile 认识这个 bundle
dsh plugin --profile web add dsh-cx-learn

# 本地开发时指向本地目录
dsh plugin --profile web add link:/绝对路径/dsh-cx-learn

安装后在 DSH 设置 → 学习通看课 可见面板。

全局安装(多用户)

在共享插件清单 access.yaml 的 base_bundles 中加入 dsh-cx-learn:

base_bundles:
- '@deepseek-ai/dsh-base'
- '@deepseek-ai/dsh-web-app'
- dsh-cx-learn

环境要求(package.json):dsh >= 0.2.0-rc.1,node >= 22。

浏览器内核与答题模型

内核不在插件目录内,插件按顺序查找:CX_BROWSER_ROOT → $DSH_HOME/cx-learn/browsers → /vol1/@apphome/dsh-shared/browsers → /opt/dsh-shared/browsers → 插件目录 .browser/。每个子目录为一个内核,内含 chrome、chromium 等可执行文件;可从 Chrome for Testing 或 npmmirror 镜像下载。部分精简 Chromium 缺 H.264/AAC,可能导致部分课程无法播放。

答题模型下拉来自:DSH 已配置模型(listProviders / listModels)与插件内置智谱系列。设置页可用「测试模型」「批量体检」探活;常见失败含额度、凭据、模型下线、余额等(README 表格有对照)。

典型用法

先做浏览器内核准备,再进设置页完成登录与选课。

  1. 打开 DSH → 设置 → 学习通看课
  2. 点「开始登录」→ 约 10 秒后「刷新二维码」→ App 扫码
  3. 「读取我的课程」→ 下拉选课(自动带上 clazzid / enc)
  4. 选答题方式:manual 或 ai(AI 需选 quizModel)
  5. 「保存配置」→「开始看课」

持久化配置在 $DSH_HOME/cx-learn/config.json,主要字段如下:

字段 默认值 说明
courseUrl '' 课程学习页 URL
mode continue_chapters 连播 / 只跑当前章
maxSections 5 单轮最多节数
videoDoneAt 98.5% 判定看完的阈值
browserId / chromiumPath '' 内核选择或自定义路径
headless true 是否无头
quizMode manual ai / manual
quizModel '' 答题模型 id

HTTP 接口前缀为 /api/cx-learn,例如 GET /status、POST /start、POST /stop、GET /courses、GET /qr 等;完整列表见 README。

脱离 DSH 时,引擎可独立运行或 --serve-mcp 暴露 cx_learn、cx_login 工具(见 README「脱离插件独立运行」)。

适用场景与注意

适合已在 DSH 部署环境中、需要把学习通看课做成可启停任务、并复用现有 LLM 配置的场景。不适合期望绕过平台人机验证或改写服务端进度的用法——插件设计明确拒绝后者。

社区目录 skillhub.cn 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;安装与使用责任由使用者自行承担。

链接

  • 目录页:https://www.skillhub.cn/plugins/forgotfish/dsh-cx-learn
  • 源码与文档:https://github.com/forgotfish/dsh-cx-learn
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye