feat: deliver Riverside Schedule seven-day grid and school HTML import

This commit is contained in:
Codex
2026-10-13 11:18:50 +08:00
parent 91a2522043
commit 8403be05da
29 changed files with 1246 additions and 446 deletions
+23
View File
@@ -0,0 +1,23 @@
# Riverside Schedule 0.2.0+2 改版验证
日期:2026-10-13。Android 包名保持 com.example.hepan_everyday,显示名称 Riverside Schedule。
## 自动化验证
- 72项单元及组件测试通过;静态检查无问题。
- 360px屏幕的七天同屏、100%和200%字体完整老师/教室、相同节数卡片等长、课程详情完整字段。
- 320px和200%字体下5条冲突安排使用全宽明确节次列表,文字不裁切、列表不互相覆盖。
- Dock图标点击、选中玻璃游标双向拖动、取消拖动恢复、页面横向滑动不换页。
- 实际提供HTML作为本机验证输入:7门课程、11条安排;周次合并、晚间9–11节、多教师。
- 不完整表格、错误星期/节次/周次、空页面拒绝成功导入;文件来源不冒充实时学校登录;读取取消和来源边界。
- 原有存储恢复、设置队列、通知及日历服务回归测试保留。
## 安卓人工验证
API36模拟器:选择学校HTML → 11条安排预览 → 确认导入 → 设置测试学期开始日 → 七列课表。点击省略课程名的详情显示全称、全部老师、教室、节次及周次。Dock双向拖动切页,页面横向滑动保持当前页。
测试用日期2026-10-12仅用于模拟器展示,不是推断的真实学期开始日。安装包中不预置本人课程或这个测试日期。
Windows模拟器默认图形路径出现qemu进程访问冲突;验证时仅通过启动参数关闭Impeller并使用软件渲染。交付APK未改变手机默认渲染配置,仍需实际安卓手机外观和实时学校登录验收。
截图位于交付目录dist/screenshots。最终APK、SHA256与源码包见dist/README.md。
+13 -5
View File
@@ -1,11 +1,19 @@
# 学校接入状态
当前首版提供自绘账号密码入口,以及学校官方页面进行验证码、二次验证和登录。认证使用系统 WebView 与学校原有提交及加密逻辑;密码不保存到本地文件,不发送到第三方服务器。退出会清除该 WebView 的 Cookie、缓存和本地存储,可选择保留或清除已导入课表。
0.2.0已实现提供的研究生课表HTML结构解析,入口为 https://yjsjy.uestc.edu.cn/pyxx/pygl/xskbcx/index/1,允许学校同路径下数字学期编号。保留HTTPS、域名、端口、登录表单检查;认证密码仍仅交给学校原有表单及加密逻辑,不保存到课表文件。
已检查公开的 [统一身份认证页面](https://idas.uestc.edu.cn/authserver/login) 及脚本,核实表单结构和学校原有函数。登录前再次检查 HTTPS、域名、端口、路径和表单结构;页面变化时停止自动提交,仍可使用官方页面完成操作。
## 已验证
**尚未完成本人登录及真实课表自动识别。** [研究生课表查询页](https://yjsjy.uestc.edu.cn/pyxx/pygl/xskbcx/index/1) 需要本人会话,当前没有取得页面样本。解析器遇到当前未知页面明确提示“学校课表识别待联调,当前课表保持不变”,不会生成虚假课程或清空原课表。
- 提供的HTML:7门课程,11条每周安排;分散周次合并;多位老师和教室完整保留;晚上9–11节保留三节。
- 课表表格节次、星期列、课程记录、周次及单元格位置逐项校验。未知、部分损坏或空HTML拒绝导入,保留旧课表。
- `.html`/`.htm`与JSON文件都先预览再确认。离线HTML只记为文件来源,不修改学校认证状态。
- 正在读取的课表在导航或退出登录后失效,迟到的结果不能恢复登录状态或导入预览。
- 原始附件中的学号、脚本和其他个人信息未放入源码或安装包。自动化测试使用合成课表;原始附件仅作为本机可选验证输入。
后续在本人手机登录后,需要用脱敏课表页面核实:课程字段、单/双周、周次范围、连续节次、校区、空课表和会话失效。页面中学生姓名、学号、Cookie、令牌及密码应移除后才作为开发样本。取得样本后增加解析器与回归测试,再开放真实自动导入。
## 仍需本人验证
首版可体验内置示例,或通过 JSON 导入本人课程。JSON 导入先预览再确认,失败保留原数据;示例模式独立,不写手机日历或安排系统通知。
实时统一身份认证、验证码、二次验证及学校登录重定向尚未用本人账户实测。解析器已连接WebView读取流程,但不能据离线HTML宣称实时登录已验证。
当前解析器支持已提供表格的明确周次范围及周次列表;未知单双周文字或新的页面结构拒绝导入。没有课程的页面不会被猜测为清空指令。
HTML没有提供学期开始日,导入不会推测或改写学期日期;需要在设置填写真实日期和周数。