Open Source

代码全部公开,包括那些踩过的坑

项目基于上游 FengHDSL/XJAU-Helper 改造,按 MIT 协议开源。读它、改它、把它适配到自己学校都可以。

一个仓库,整条链路

登录桥接、正方 V9 接口、ArkTS 严格模式下的踩坑记录,都在仓库里。93 个 ArkTS 源文件、约 4.2 万行,数据层与视图层解耦,改一所学校主要动 config/ 与登录链路。

93ArkTS 源文件
4.2万行代码
MIT开源协议
ArkTSArkUIHarmonyOS NEXTAPI 26 正方 V9金智 CASArkWebFormKit
~/NJMU-Helper
# 克隆并打开 git clone https://github.com/xiopeng32-ai/NJMU-Helper.git cd NJMU-Helper # 用 DevEco Studio 打开,等待 Sync # Project Structure → Signing Configs # 勾选 Automatically generate signature hvigorw --mode module -p product=default \ assembleHap --no-daemon ✓ BUILD SUCCESSFUL entry/build/.../entry-default-signed.hap
Stack & Flow

一条请求穿过什么

没有自建服务器:应用只在本机发请求、本机解析、本机缓存。下面是登录到出数据的一次完整链路。

TS
ArkTS 严格模式静态类型 / 无 any 兜底
UI
ArkUI 声明式手机 / 平板 / 2in1 自适应
Web
ArkWeb 容器统一认证 / 云课堂内嵌
FM
FormKit 卡片桌面卡片与倒计时
V9
正方教务 V9课表 / 成绩 / 考试接口
CAS
金智统一认证多因子与设备信任
应用本机 账号仅留在设备内 ArkTS · no server ArkWeb 登录 统一身份认证页面 cookie · fingerprint 正方 V9 / 金智 CAS 学校官方系统 jwgl · authserver 本地解析 + 缓存 离线可读 / 秒开 memory · disk REQUEST PATH
Changelog

一直在修,也一直在加

从第一版到现在,几乎每个版本都来自真实使用中的抱怨。下面是最近的改动。

v2.0.3最新
  • 2.0 稳定版:云课堂升级为内嵌网页版,统一认证免密直进,页内返回、进度条、失败重载一应俱全
  • 新增「今日课表」页面:时间轴卡片三态(已结束 / 进行中剩 X 分钟 / 待开始倒计时),下拉刷新、30 秒自动重算
  • 性能与稳定性:课表缓存内存层、离线秒回退缓存、云课堂退出即停网页任务
v1.9.21
  • 云课堂过渡版:错误页主按钮改为「网页登录云课堂」,应用内 WebView 完成统一认证后自动续接会话
  • 课程、实录、通知仍走原生接口,体验与直连一致,会话 2 小时内免重复登录
v1.9.8
  • 修复成绩、学业导出图片在课程较多时底部被截断的问题,现在完整渲染全部所选课程
v1.9.7
  • 修复导出图片卡在「生成中」:不支持相册授权弹窗的设备自动改为保存位置选择框
  • 修复成绩查询页无法选择学期的问题,导出成功、取消、失败均有明确提示
v1.9.6
  • 成绩导出支持勾选课程,不再一刀切全部导出
  • 学业情况页新增图片导出,可勾选学业概览、课程明细、学业提醒模块
v1.9.5
  • 成绩查询新增导出:一键生成成绩单图片并保存到相册
  • 课程表默认展示 15 节(南医大每天 15 节课),本地缓存全面兜底
v1.9.4
  • 学业情况页升级:平均学分绩点、学业总评、修读情况修复并支持自定义显示
  • 课程表支持一键导出到系统日历;应修学分按培养方案精确匹配
  • 登录流程优化:网页登录支持记住密码与无感自动登录
v1.9.0
  • 登录白名单与无感登录:一次认证,长期有效
Contributing

三步,改成你学校

数据层与视图层解耦,绝大多数适配只落在配置与登录链路上。

01Fork & Clone

Fork 仓库后克隆到本地,用 DevEco Studio 打开,勾选自动签名完成一次构建。

02改配置

替换 config/ 中的学校域名、教务接口与登录地址,按新学校页面调整解析规则。

03提 PR

通用改动(性能、UI、解析容错)欢迎提回上游;学校专属改动留在自己的 Fork 即可。