疫情上报又双叒叕要搞了,虽然让人很不爽,但站在校方立场上也确实马虎不得。不过对于每天在学校里、在家,屁事没有的孩子而言又略显麻烦,所以我写了个这玩意儿。
上次更新:2023年3月16日
- 疫情已经无了,至少上头是这么认为的。那这个repo也就没有意义了。或许当个纪念碑还不错哈哈哈。
- 此外这几次搞自动疫情上报脚本,也大概了解了学校一些线上功能的大致接口,有兴趣的同学也可以研究研究。不过咱学校不用抢课,所以估计用处不大。评教、同步课表时或许会有点用。
- 如果没有意外的话,这次算是最后一次更新了,一时想不出什么骚话,就祝大家身体健康把。
- 这是个用来帮助哈工深的同学的疫情上报小脚本,外校的同学不要误用。
- 脚本运行时涉及登陆操作,请注意填写账号密码,下文有提及。此外,学校的统一身份认证登陆在HTTPS下明文传输密码。虽然有协议保护,但仍需注意所处网络环境。
- 更新后的学工系统对一些请求参数的限制更加苛刻,亦不排除今后再有相关的更新。如果脚本出现了报错,请发Issue,我会尽量帮助解决问题或发更新或debug。当然,如果有其他的问题,也可以提,我也会看情况尽量提供帮助。
- 新的上报系统在上报位置信息时,需要提供经纬度和其对应的地名。我没有实现自动获取位置的功能,而是取了学校风洞实验室附近的某个地点加上正态分布噪声融合成的一个数据。虽然不会有太大偏差,但求稳的话,可以将其改为定值。若不在学校,使用脚本时记得将所在位置经纬度和地理名称改为自己实际位置! 经纬度可以从手机指南针应用获取,但要记得转化为小数形式并保留7位有效数字(加上小数点一共8个字符);地理位置映射可以试试这个。
- 从2022/3/10起的疫情上报,也可以使用211029脚本,可以不用VPN,不要挂代理。上报请在每天的0:05后进行,不然学校服务器不会记录(DISS一波学校的网络中心)。
脚本运行需要Python3.6及以上的环境,此外对于Windows用户,还要安装requests
包:
python3 -m pip install requests
(或者适用于你电脑配置的其他指令)
运行前,需要在脚本内填写教职工号/学号以及统一身份认证密码,同时也别忘了按需修改上报信息(相关信息都已详细注释)。
具体来说有这些:
-
第14、15行的账号密码
记得以如下格式填写正确的学号和密码。如果漏填或误填,上报将因无法登陆而失败。
login_param = { 'username': '180310101', # 学号 'password': 'ThisIsYourPassword,Daze~', # 校园认证密码 # ... }
-
第27行到第144行的上报信息
其中已经填好默认值(默认在校、健康、未做核酸),如果有需要更改的信息,请参照其上方注释来填写。比如,如果你想修改48小时核酸状况为“已做”,需要更改130行为
"kzl31":"1",
;如果你想修改实时位置信息,你需要修改39、40行的经纬信息,55~59行的经纬度地名和142~144行的省市区信息,并按需修改34行的当前状态码。
如果想实现每日自动上报,对于Linux用户,直接上cron
即可;对于Windows用户,可以设置任务计划来实现自动化。
如果你的身体真的有不良状况,请停止脚本运行并通过正规途径如实上报~(求生欲