Skip to content

fix(学习通): 复用参考 App 的课程入口页作业发现,不强制依赖 workEnc - #422

Merged
07xh merged 3 commits into
mainfrom
fix/chaoxing-course-embedded-worklist-20261108
Nov 8, 2026
Merged

07xh merged 3 commits into
mainfrom
fix/chaoxing-course-embedded-worklist-20261108

Conversation

@07xh

@07xh 07xh commented Nov 8, 2026

Copy link
Copy Markdown
Owner

问题定位(参考 APK 方法体)

用户提供的 丛雨幼刀学习通_2.1.14.apk 中,MobileEngine.scan() 先读取本人通知、展开学习任务,后执行 scanCourses()。scanCourses() 进入课程实际入口页面并通过 Jsoup 选择器 .bottomList li[data]、p.overHidden2、p.status 读取已提交/待批阅/已完成记录。此前校序一直要求课程入口含 workEnc 才能继续生成 GET 列表请求;同一账号的某门课程如使用嵌入式作业列表模板就被错误拒绝。此前两轮 URL 修改没有解决真实账号 Python 程序设计的失败。

本次修复(纯服务端、无新增登录或 UI)

  • 在已核验本人 courseId/classId/cpi 及官方课程入口后,额外识别该课程真实页面 .bottomList li[data] 的可信作业行。仍复用 parseChaoxingWorkList / safeChaoxingWorkUrl 的 HTTPS 官方域名、作业 ID 与课程班级强校验。
  • 入口页作业状态可在缺少 workEnc 时作为可信单条状态证据,但没有官方总数时只能归为 LIST_ONLY;有分页或总数矛盾不得冒充 100% 覆盖。
  • 签名分页列表存在且可正常读取时仍优先原有路径,避免破坏工程制图 5/5 成功数据。若两条签名列表都不可用,可使用完整单页的可信入口页作业快照;不自动登录、绕验证码、保存签名 URL 或删除旧作业。
  • 参考 App 的通知→学习计划任务发现是一条额外数据源,不是本次补丁已经覆盖的功能,仍由现有 Android PR refactor(学习通): 按参考完整流程替换底层读取,清退旧云端与网页扫描链 #419 单独改造/验收。
  • 新增合成回归:入口页直接含已完成与待批阅、入口页无需 workEnc、正常列表优先、无任务/空壳不认定成功、非本课程条目拒绝。

门禁与诚实状态

CI 通过后才合并,Cloudflare SHA 通过后才宣称上线;真实 Python 六条作业尚须本人手机复测。本 PR 不使用任何机密登录数据或反编译源码直接复制,借鉴的是已核实的只读选择器和数据流。

@07xh
07xh merged commit fba9e11 into main Nov 8, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant