PKU 出入校备案自动化

教程

九月底,刚好在国庆前,我被学校禁止出入校十五天,触犯了学校关于“报备—审核”的条例——15日内累计6次(记为3次违规出入校),将取消接下来15日内的出入校权限。国庆假期待在校内勤奋学习,积极向上。很遗憾地错过了车队的重要训练,车协的凤凰岭两天一夜旅行也没能赶上。

在北大,我应该是最早几个被限制出入的人员,问及相关人员都不清楚这其中的手续。

保持日常备案是最低成本的做法

免责声明:作者并不鼓励任何人员使用任何手段欺骗系统。Use at your own risk。

有一说一,技术上仅仅是自动化填写和提交的流程,达到提升效率的目的,风险不大。每天备案两次,其中一次为冗余。举例:定时为UTC+0 02:00 和 08:00,即在格林威治时间+0 的两点软件触发,填报出入校各一次;在八点再次触发,填报出入校各一次。(因此后面那次是冗余)

如何自动出入校备案

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

Fork、填学号密码、Commit

更新 20201021:有同学反应密码带 ( 会报错 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: '45 8 * * *'

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

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

image-20201017200638873

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

另外,据说备案失败会发邮件到你 GitHub 账号邮件进行提示。

参考

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

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

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

本文作者:Hays Chan | 陈希

本文链接: https://haysc.tech/2020/10/17/pku-auto-beian/

本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

评论

您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。