Repository navigation
0.32.0
这个版本最重要的变化:研究生课表现在可以用了。之前研究生的课表一直显示「教务登录态已失效」,
因为研究生的课表根本不在本科教务系统里——它在研究生院那套系统,需要单独登录一次。
一、新增:研究生课表
- 自动识别学籍:用你的账号问一次本科教务,本科生走的还是原来那条路;研究生会自动切到研究生院的数据源。
判不出来时(比如网络异常),课表页最下面有「我是研究生,课表在研究生院系统」可以手动切换。 - 整学期课表:不再是"只能看本周",和本科生一样有整学期网格、翻周、课程详情,还能看到教室与主讲老师。
- 官方作息时间:第 1~10 节的上下课时间按学校作息表显示(原来研究生课表只有"第 N 节"、没有时间)。
- 教学周可校正:研究生系统不返回"现在是第几周",所以「课程表设置 → 教学周」里可以设置
开学日期(第 1 周起始日)、当前周次、本学期总周次、每周起始日。本科生的这几项由教务校历自动填。
二、新增:断网也能看课表
- 先显示、再刷新:进课表页先显示本地缓存(秒开),再在后台悄悄拉最新数据。
- 内容没变时界面完全不动:不会闪、不会弹提示。
- 拉不到时不报错:顶部只出现一行小字,例如「显示的是 14:20 的课表 · 点此重试」,
而不是一条红色错误——避免让人误以为账号出了问题。 - 登录过期:提示会写「研究生登录已过期,以下是 14:20 的课表 · 重新登录」,点它直接去重新登录。
- 空教室:保留最近 7 天(今天 ~ 往后 6 天)的教室占用快照,教务取不到时仍可查看,并标注获取时间。
三、新增:今日页与桌面小组件支持研究生
- 「今天」页会显示研究生的课(以前只认本科学期,研究生会看到"今天没有课");
- 2×2「下一节课」、4×2「今明课表」都能显示研究生课程,外观与本科生完全一致;
- 「电量与校园卡」组件不受影响。
四、界面上的清理
- 课表页表头回到简洁样式:
第 7 周 / 共 19 周; - 「登录研究生系统」页面只保留「重新登录」「完成登录」两个按钮;
- 正式安装包里不再显示「自检工具」(一卡通/教室/鉴权/研究生探测/图书馆)——它们是排障用的,
平时用不到,留着反而干扰。需要排查时我们会另外提供带自检的安装包。
五、研究生怎么登录(第一次用看这里)
研究生课表需要单独登录一次研究生院系统,因为它是另一套系统。
- 先正常登录 App:用学校统一身份认证(账号 + 密码)。
登录后电费、校园卡等功能就都能用了。 - 进「课表」页:如果判定你是研究生,会看到「研究生课表」和「登录研究生系统」按钮。
如果没看到这个入口,点页面最下面的「我是研究生,课表在研究生院系统」也一样。
- 点「登录研究生系统」:会打开学校自己的统一身份认证页面。
- 在这个页面上再输一次账号密码:
这一次密码是输在学校自己的网页上的,App 不接触、不保存,只接收它发下来的登录状态。 - 登录成功、回到 App 后:课表会自动拉取并显示(如果没自动完成,点一下「完成登录」)。
- 以后就不用再登录了:登录状态存在本机。等它过期时,课表页顶部会提示,
点一下那行提示就能重新登录。
如果教学周 / 日期对不上
研究生系统只告诉"第几周的第几节",不告诉我们"现在是第几周",所以偶尔会差一周。校正方法:
- 课表页右上角 ⚙ 课程表设置;
- 最上面「教学周」→ 看「当前周次」是不是本周;
- 不对就改「当前周次」,或直接把「开学日期(第 1 周周一)」设成学校校历上的那一周;
- 改完立刻生效,以后会按日期自动推算,不用再改。
六、已知限制
- 研究生需要单独登录一次研究生院系统(也就是会输两次密码,一次给 App、一次给学校网页)。
这是两套系统的现状,暂时无法合并。 - 研究生账号没有教室占用功能(研究生院侧没有对应数据源)。
- 空教室数据超过一定时间后仍会显示(并标注获取时间),不会自动隐藏——请以标注的时间为准。
- 研究生的历史学期切换暂未支持(目前固定显示当前学期)。
七、升级说明
- 可以直接覆盖安装,登录状态与本地数据都会保留;
- 由于版本号升高,装了这个版本之后无法直接降级到旧版本(需卸载重装,会清空本地数据)。
八、致谢
感谢 @Inspire2431 同学:
- 第一个把"研究生课表一直提示登录失效"这个问题说清楚,并给出了准确的判断(问题出在培养层次与数据源,不在登录状态);
- 提了两个高质量的 PR(研究生课表数据源、会话 Cookie 与周次对齐),还附带真机证据;
- 指出并复现了探针报告里两处会泄露凭据的脱敏漏洞;
- 在这几个版本里反复真机验证,包括登录、翻周、离线缓存这些不好测的路径。
没有这些反馈,研究生这条链路不会这么快跑通。