Rust GPL-3.0

uxuescript

超星学习通全自动刷课脚本与课程自动化工具,支持后台刷课、倍速播放、自动回答互动题目及 AI 智能答题。由原 uXuexitongJS 重构演进而来,截至 2026/09 可用。

U

unraous

Dernière activité 26 sept. 2026
unraous/uxuescript

211

étoiles

18

forks

3

issues ouvertes

chaoxingeducationjavascriptxuexitong

Ce README est souvent en anglais.

uXueScript 2.0

uXueScript Logo

学习通自动化辅助桌面客户端
课程任务自动推进 · 混淆字体还原 · AI 答题参考 · 独立脚本支持

Latest release Rust 1.97.1 Tauri 2.11 Vue 3.5 TypeScript 5.6 GPL-3.0-only Ask DeepWiki

下载最新版本 · 桌面端使用 · 智能答题 · 无后端模式 · 架构概览 · 反馈问题


uXueScript 是面向学习通网页版课程的自动化辅助客户端。桌面端基于 Rust + Tauri 2 + Vue 3 开发,通过内嵌 WebView 加载课程页面并注入自动化核心脚本,支持在界面中实时同步章节进度;同时内置混淆字体还原与 AI 辅助答题能力,为测验提供参考答案。

项目继承自旧版 uXuexitongJS,核心自动化逻辑保留为单文件脚本(core.js),支持脱离客户端直接复制到浏览器控制台执行(无后端模式)。

当前版本为 v2.1.4,处于持续演进与完善阶段。遇到问题建议先更新至最新 Release,并查阅常见问题解答。

运行预览

uXueScript 运行预览

核心特性

  • 轻量体积: 基于 Tauri 2 构建,Windows 发行包体积约 6–7 MB,无需安装 Python、Selenium 或浏览器驱动。
  • 课程任务自动处理:
    • 自动识别章节目录树与任务点状态,跳过已完成小节,推进未完成任务。
    • 视频任务:支持自动播放、倍速调节、静音与防暂停。
    • PDF 任务:自动滚动内嵌阅读页面至底部,并等待任务点完成标记。
  • 混淆字体还原与 AI 答题:
    • 解析超星 font-cxsecret 动态混淆字体,比对 TTF 轮廓特征还原真实题目文本。
    • 支持调用大语言模型生成参考答案,覆盖单选、多选、判断、填空与简答题并自动回填。
  • 后台防失焦暂停:
    • 拦截 blur、visibilitychange 等页面失焦事件,支持后台挂机运行。
  • 双模式运行:
    • 桌面端:集成 WebView 界面、配置面板与字体/AI 答题后端。
    • 独立脚本:单文件 core.js,可直接在任意浏览器控制台运行非测验类任务。

运行模式对比

功能特性 桌面客户端模式 (Tauri + Vue) 独立脚本模式 (core.js)
执行环境 内嵌桌面 WebView 任意现代浏览器控制台 (Console)
环境依赖 无需额外运行时 (解压即用) 需自行登录并手动注入脚本
视频自动播放 / 静音 / 倍速 支持 (本地配置记忆与锁定) 默认静音;默认不修改播放速度,可在脚本配置中开启倍速锁定
PDF 阅读自动滚动 支持 支持
后台运行 / 失焦防暂停 支持 支持
课程章节自动连续流转 支持 支持
课程章节与任务进度监控 支持 (客户端界面展示) 仅浏览器控制台日志输出
font-cxsecret 混淆字体还原 支持 (TTF 轮廓与哈希匹配) 需后端配合 (独立模式不支持)
大模型测验参考与自动填答 支持 (多 Provider / 多题型适配) 需后端配合 (独立模式不支持)
登录状态与会话保持 支持 (本地存储持久化) 取决于当前浏览器 Cookies

独立脚本详细执行指引见无后端模式文档。

系统架构与工作流程

系统由 Vue 前端、Tauri / Rust 后端、内嵌 WebView (core.js) 与 外部 LLM 服务 协作构成:

flowchart LR
    subgraph UI [前端界面 Vue 3]
        Dashboard[课程看板与配置面板<br/>进度展示与参数设置]
        Controls[WebView 控制栏<br/>导航与页面缩放]
        Mask[启动遮罩<br/>过渡动画]
    end

    subgraph Backend [Rust / Tauri 后端]
        MacroHandler[统一命令宏<br/>uxs_commands]
        WindowEngine[窗口与比例布局<br/>WebView 几何自适应]
        Injector[URL 识别与脚本注入]
        QuizEngine[字体解析与还原<br/>TTF 轮廓与哈希映射]
        LLMDispatcher[LLM 请求分发<br/>分批并发与 429 退避]
    end

    subgraph WebviewContext [内嵌课程 WebView]
        CoreJS[core.js 核心脚本]
        StateGuard[防失焦暂停守护]
        TaskExec[任务执行器<br/>视频/文档/答题]
        CourseDOM[超星课程页面 DOM]
    end

    subgraph Services [外部服务]
        CXServer[超星服务器]
        LLMService[LLM API / 本地 Ollama]
    end

    Dashboard -->|Tauri IPC| MacroHandler
    Controls -->|Tauri IPC| MacroHandler
    Mask -->|窗口事件| MacroHandler

    MacroHandler --> WindowEngine
    MacroHandler --> Injector
    MacroHandler --> QuizEngine
    MacroHandler --> LLMDispatcher

    WindowEngine -->|按比例布局| CourseDOM
    Injector -->|页面加载完成后注入| CoreJS

    CoreJS --> StateGuard
    CoreJS --> TaskExec
    TaskExec <-->|操作与完成监听| CourseDOM
    CourseDOM <-->|课程资源| CXServer

    TaskExec -->|1. 提取题目 HTML| QuizEngine
    QuizEngine -->|2. 还原明文题干| LLMDispatcher
    LLMDispatcher -->|3. 请求答案| LLMService
    LLMService -->|4. 返回答案| LLMDispatcher
    LLMDispatcher -->|5. 填入答案| TaskExec
    TaskExec -->|6. 更新进度| Dashboard
Loading

核心工作流程:

  1. 脚本注入:课程 WebView 页面加载完成时,后端根据 URL 特征(core::url)进行识别;由 core::script 将单文件 core.js 注入到课程页面。
  2. 字体还原:进入测验任务时,页面抓取题目 HTML 传给后端的 solve_quiz;字体解析与映射逻辑位于 typr.rs 和 mapper.rs,使用特征哈希表 table.json 将混淆字符还原为明文。
  3. 题目求解:明文题目由 dispatcher.rs 分批(每批最多 5 题、最多 10 批并发)调用已配置的 LLM 服务。遇到 429 时优先使用整数秒格式的 Retry-After,否则按 1、2、4 秒退避,最多重试 3 次;解析后的答案返回至页面并自动完成选项点击或内容填入。
  4. 进度同步:自动化脚本通过 send_status 通知后端,后端向主窗口发送 status-update 事件以更新界面进度展示。

详细架构说明参见架构概览文档。

支持的 AI 模型供应商

在桌面客户端 Configuration 中支持配置以下供应商及自定义模型:

  • DeepSeek
  • OpenAI
  • Google Gemini
  • Moonshot (Kimi)
  • 智谱 BigModel
  • OpenRouter
  • 本地 Ollama

详细配置见智能答题指南。

快速开始

方式一:直接运行发行包 (推荐)

  1. 前往 Releases 页面 下载对应系统的压缩包并解压。
  2. 运行 uxuescript。
  3. 在左侧 Configuration 中配置 Provider、Model 与 API Key 并保存(如无需 AI 答题可跳过)。
  4. 在右侧内嵌 WebView 中登录学习通,进入目标课程小节。
  5. 脚本加载后,在课程区域的客户端确认遮罩中点击 Yes 即可开始自动处理,点击 No 取消。

详细操作与图文流程参见桌面端使用指南。

方式二:从源码构建

开发与构建前请确保本地具备以下环境:

# 1. 克隆代码仓库
git clone https://github.com/unraous/uxuescript.git
cd uxuescript

# 2. 安装前端依赖
pnpm install --frozen-lockfile

# 3. 启动本地开发环境
pnpm tauri dev

# 4. 构建生产发行包
pnpm tauri build

生产打包细节参见构建指南。

使用须知与边界说明

  • 平台支持: 目前主要在 Windows(x64)环境下测试与验证;macOS 与 Linux 平台的支持处于持续完善中。
  • 免责声明: 本项目仅供个人学习、软件工程研究与自动化技术交流,不对使用本工具造成的任何后果承担责任。请遵守相关使用规范,严禁用于任何违规用途。
  • AI 答题局限: 模型生成的答题结果受模型自身知识与题目类型限制,仅供参考,无法保证正确率。
  • 凭据安全: API Key 保存在本地配置文件中;调用模型服务时,会作为请求认证信息发送到所配置的 API 地址。请仅配置可信服务,不要分享包含密钥的配置文件。

文档导航

反馈与贡献

欢迎提交 Issue 与 Pull Request:

  • 遇到问题或页面不兼容,请在 GitHub Issues 提交包含复现步骤、课程类型与控制台日志的反馈。
  • 联系邮箱:unraous@qq.com。

开源许可证

本项目核心源代码依据 GNU GPL v3.0 许可证开源发布。
第三方字体、字形特征哈希表与依赖库声明请参阅 THIRD_PARTY_NOTICES.md。

Projets similaires

学习通自动刷课脚本

JavaScript
Cchaolucky18
2,7 k étoiles347

OCS 网课助手,刷课脚本,网课脚本,帮助大学生解决网课难题,支持【超星学习通】【知道智慧树】【职教云】【智慧职教】【中国大学MOOC】等网课 , 可以在 脚本猫 以及 油猴 等开源脚本管理器下运行。

TypeScriptant-desgin-vueelectronnodejs
Oocsjs
3,5 k étoiles286

2026智慧树刷课脚本 基于Python Playwright的自动化程序 [有免安装版]

Pythonautocompletejavascriptplaywright
CCXRunfree
927 étoiles83