Skip to content

qq4199/NJMU-HealthDailyReport

 
 

Repository files navigation

NJMU自动打卡

GitHub Pipenv locked Python version GitHub GitHub Repo stars

⚠️严正声明

学校的健康打卡制度是国家疫情防控的重要一环,违反疫情防控有关规定需承担刑事责任.此项目仅供学习交流,不可用于违法违规用途.使用本项目造成的任何后果使用者自行承担

⚙️快速使用

本项目通过腾讯云函数部署,可以实现每日健康日报的自动打卡,防止您因繁忙的工作或学习,亦或是睡懒觉而忘记了健康日报的填写。使用步骤如下

  1. 下载Release中的depency.zip文件,此为云函数依赖文件
  2. 下载Release中的run.zip文件,此为运行函数
  3. 解压run.zip安装好依赖后,填写ID.yaml文件 ,填写后运行getinfo.py,此函数用于获取您昨天填写的信息,并自动去除几个由index.py文件自动生成的参数
  4. 运行getinfo.py后,疫情打卡提交信息.txt文件已有内容后,压缩文件夹,待上传云函数
  5. run.zip文件中的index.py等文件版本较为落后,建议您下载源文件,替换run.zip文件中的文件以保持最新版本

🧩环境依赖

由于腾讯云函数目前仅支持python3.6及3.7版本,且3.7版本缺乏必要的依赖库,因此本项目使用Python3.6开发。建议您使用Anaconda创建虚拟环境,并进行虚拟环境下依赖库管理,建议使用Pycharm编辑并运行代码。

  • Anaconda

    解压run.zip后,在解压的文件夹目录下打开cmd运行此命令conda install --yes --file requirements.txt,安装依赖。关于将conda添加到环境变量,您可以访问此网页

  • PIP

    如果您使用的是pip安装指令,在解压的文件夹目录下打开cmd运行此命令pip install -r requirements.txt,以安装依赖,关于将pip添加到环境变量,您可以访问此网页

  • pipenv

    在Pycharm中使用pipenv创建环境时,会自动根据requirements.txt文件安装所需依赖,如果下载依赖库速度慢,您可以科学上网或将Pipfile文件中的[[source]]下的url更改为https://mirrors.aliyun.com/pypi/simple, 有关pipenv环境的创建及激活,您可以参考此链接或是自行搜索

  • 项目依赖的库如下:(详见requirements.txt文件)

    requests==2.27.1
    pyyaml==3.12
    pydes==2.0.1
    pycryptodome==3.10.1
    

🛠️打卡配置

ID.yaml文件中按备注填写网上办事大厅的用户名(username)、密码(password);发送邮件的邮箱(sender),邮件授权码(password),接受邮件的邮箱地址(receivers),以及邮箱smtp服务器(smtp_server)等信息。

☁️云函数部署

使用腾讯云函数实现自动打卡,部署步骤如下:(如果您无法看到图片,您可以参考此链接修改hosts文件,或是采用科学上网)

  1. 点击上方腾讯云函数超链接,注册认证后,进入控制台,点击左边的层。

    step1

  2. 点击新建,名称随意,然后点击上传zip,选择release中的dependency.zip上传,然后选择运行环境python3.6,然后点击确定。

    step2

  3. 点击左边的函数服务,新建云函数,名称随意,运行环境选择python3.6,创建方式选择空白函数,按如下步骤后,点击完成。

    step3

  4. 点击层管理,点击绑定,选中刚刚创建的层,点击确定。

    step4

  5. 左边点击触发管理,创建触发器,名称随意,触发周期选择自定义,然后配置cron表达式,下面的表达式表示每天早上8点05分执行,如果需要自定义,请在index.py中同步修改create_info函数中的参数,默认是8点05分。

    0 5 8 * * * *

    step5

  6. 然后就可以测试云函数了,绿色代表云函数执行成功,红色代表云函数执行失败(失败的原因大部分是由于依赖造成的)。返回结果是success.,代表自动提交成功,如遇到问题,请仔细查看日志。

📰消息提醒

本项目使用邮件提醒您自动打卡是否成功,可能日后会有微信提醒。请按打卡配置配置好ID.yaml文件,邮件授权码以163邮箱为例。

step6

🖥️开发者

如果你也懂得一些python知识,欢迎fork...定制属于你自己的脚本

学校的健康日报打卡有多个入口:

  • 今日校园
  • 微门户
  • 网上办事大厅

由于安卓抓包较为繁琐,所以本项目是基于网上办事大厅这个入口开发的,如果代码运行有问题,你可以通过网上办事大厅进入健康日报打卡,按下F12打开开发者工具,进行抓包分析。此外,苏康码的截图需要浏览器渲染,受制于腾讯云函数的限制,很难在云函数中实现,如果你有好的解决方法,欢迎提交commit

🎯目标

  • 是否需要截图验证
  • 苏康码截图
  • 行程码截图
  • 微信打卡提醒
  • 时间参数匹配

❤️致谢

此项目参考了@ZimoLoveShuang大佬的 auto-submit项目,尤其是本项目的encrypt.py文件,非常感谢。

感谢JetBrains提供的 PyCharm 教育版软件

📨 联系我

如果您有建议或者bug提交,您可以通过Issues提交

About

南京医科大学健康日报打卡

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%