PKU 出入校备案自动化

教程

⚠️ 留意:建议大家使用另一个工具 PKUAutoSubmit_online ,更容易上手。教程请参阅《PKU 出入校备案自动化(2021 版)

学校更新了登入接口,原文写的内容无效。建议大家使用另一个工具,教程请参阅《PKU 出入校备案自动化(2021 版)》。

原文

完成教程后,你能:

  • 每天自动备案
  • 如果自动备案失败,接收到邮件通知提示

完成教程大约需要 15 分钟。

  • 2020-12-19
    • 折叠与教程无关的内容

技术上仅仅是自动化填写和提交的流程,达到提升效率的目的,风险不大。

每天自动备案两次,其中一次为冗余。举例:定时为UTC+0 02:00 和 08:00,即在格林威治时间+0 的两点软件触发,填报出入校各一次;在八点再次触发,填报出入校各一次。(因此后面那次是冗余)

作者不鼓励任何人员使用任何手段欺骗系统,也不承担后果。

北京大学自动出入校备案

前提:你需要一个 GitHub 账号。如果你没有,请注册一个,参考《一步一步教你注册GitHub账号及简单使用》,完成验证邮箱即可。

Fork、填学号密码、Commit

  • 有同学反应密码带 ( 会报错 exit code 2,建议改个密码。
  • 密码太长似乎也会有问题,之前 16 位的密码很多报错,换到 11 位就没事了。

如果遇到问题,需要你更改一下学校账号的密码。关于如何更改密码,请参考 学校文档

  1. 登陆了你的 GitHub 账号后,打开 YOUSIKI / PKUAutoSubmit,点击右上角的 fork。

image-20201017191924147

  1. 片刻后,fork 完成,左上角为 你的用户名 / PKUAutoSubmit

    image-20201017192530779

  2. 点击上方导航栏的 Actions,然后点击下方的绿色图标。

image-20201017192654134

  1. 点击 Settings - Secrets - New secrets

    image-20201017193846408

  2. 新建 secret 第一次填 USERNAME 和你的学号;第二次再新建 secret,填 PASSWORD 和你登入 PKU Portal 的密码。

填写完毕后,应有两项,如图:

image-20201021191934170

  1. 点击 Code,然后点击✏️按钮。

image-20201017195512395

  1. 随便写点内容(e.g. 立足燕园,解放清华),滚动到最底,点 Commit Changes。

imgonline-com-ua-twotoone-vHuaHdB1uIl9adVd

  1. 点击 Actions,观察是否有 Update README.md,如果有的话,代表成功手动备案。

image-20201017200141783

定期自动运行

不用你修改任何内容,程序已经会根据 .github/workflows/main.yml 中定义的 cron 自动运行。目前预设是 UTC+0 早上一点和八点(自己转换下北京时间),每天备案两次,其中一次为冗余,应该是颇安全的。

schedule:
    - cron: '15 1 * * *' # cron表达式,Actions时区是UTC时间,所以上午9点要往前推8个小时
    - cron: '45 8 * * *' # cron表达式,Actions时区是UTC时间,所以上午9点要往前推8个小时

除此以外,还能自定义填写内容,例如 出入校理由轨迹。(有需求发邮件给我,我再写吧)

建议前两天都来看看 Actions 里有没有成功自动备案,能看到 Scheduled 字样以及绿色☑️代表预设任务成功执行:

image-20201017200638873

Portal -> 学生出入校 -> 备案历史,能查看自动备案是否成功。

备案失败会发邮件到你 GitHub 账号邮件进行提示。

我遇到了在很久(三十天)没更改过项目后,Actions 会停,如果你发现没备案,可以查看是否被 GitHub 关停了。

参考

没做什么工作,只是合并为一个 main.py 然后改了改参数读取方式。然后写了个 Github Actions 的配置文件,每天自动执行两次。你可以 fork 本仓库然后在自己仓库的 Settings/Secrets 中设置 USERNAME 和 PASSWORD 两项,一劳永逸。如果你想使用其他填报参数,请自行修改 .github/workflows/main.yml,参数名称参见 main.py

本文本质上是根据 YOUSIKI 在 README 里这段的详述,并且添加了配图。

感谢 Bruuuuuuce 的备案工具,以及 YOUSIKI 整合的 GitHub Actions。