Files
TPSchedule/docs/rschedule-0.3.1-validation.md
T

3.6 KiB

RSchedule 0.3.1+5 · 自动读取与玻璃动画修正

2026-10-13。

登录自动读取

原判断假设真实研究生系统存在href为/pyxx/home/exit的退出链接。两个实际附件均没有该链接;实际使用window.logout()函数,且有navbar与main-container页面节点。旧版因此未触发自动跳转。

新流程在学生完成统一认证后检测真实研究生页面结构和logout函数,自动进入课表查询、等待表格就绪并导入。支持/pyxx根首页、HTTP研究生回调、异步表格和同源内嵌页面;每750ms检测,45秒内有界等待。学生只需完成学校登录和验证码,不需要手动进入课表。读取当前页面仅为恢复入口。

只读取可信学校文档中的选中学期和已识别表格片段,排除密码页和跨源文档,保持原严格解析器。旧导航、旧读取、旧网络失败和关闭页面后的结果均失效;已有数据不会被残缺表格覆盖。

外观与交互

  • 三个页面统一蓝色主色、浅蓝背景和深蓝文本。课表标题左边距8+14=22,与其他两页一致;七天网格宽度保留。
  • Dock宽度280→264,高度68,静止滑块边距3。选中态浅灰,未选中部分透明玻璃。
  • 按压、拖动时滑块放大约18%–20%,随速度拉伸,并用弹簧回弹;滑块能在交互时高于Dock,不被底座裁切。
  • 滑块交互时提高透明感,实时背景滤镜弯曲边缘采样、轻微放大中部并模拟色散和反光。图标位于滤镜上方。
  • 向下隐藏使用360ms缓入缓出滑出屏幕底部,取消过早淡出;向上滚动滑回。页面仍不支持横向滑动切页。

设计参考:苹果iOS27、苹果液态玻璃指南、苹果Tab bar指南,以及用户视频。

验证

  • 合并后的107项Flutter测试通过,flutter analyze无问题,安卓构建成功。
  • 新回归覆盖:无退出链接但有logout函数时自动跳转;异步表格等待;嵌入表格读取;退出/关闭/重新打开的旧结果隔离;HTTP同源子页面;自动导航失败不影响新草稿。
  • Node独立执行原生产网页检测脚本,验证真实选中学期序列化、根首页、嵌套同源文档、密码排除与源校验。
  • 两个真实附件的解析仍正确:11条课程安排、8门未排考课程。
  • 动画测试检查按压放大、松手恢复、隐藏过程仍可见且位置向下移动;折射像素测试用实际图像纹理验证边缘像素改变且中心保持稳定。
  • Android兼容渲染模式实际截图保存在dist/screenshots/rschedule-week.png、rschedule-exams.png、rschedule-profile.png、rschedule-dock-held.png。

验证范围

学生真实账户和验证码未由代理填写,真实认证后的端到端流程仍需学生本人验证。已修复确定的错误选择器,并通过真实HTML、网页脚本及会话流程回归验证。

实时折射使用Flutter ImageFilter.shader,要求支持Impeller。其他模式保留透明玻璃高光与轻微模糊。本机Android模拟器GPU运行会导致宿主显卡进程退出;OpenGL测试模式同样无法运行,因此实际截图和原生动画复核使用兼容模式。折射算法已有真实像素测试,但真实手机GPU下的背景定位与视觉效果尚未实测。Flutter接口限制

测试用渲染配置已恢复,交付APK保留默认手机配置。原始HTML、视频及个人学号姓名不在源码或APK中。