适配东华理工大学的今日校园自动签到打卡。
项目源自若离和子墨,原项目无法直接套用,在此基础上对casLogin登录端口进行一些调改以适配东华理工大学。
以下为原项目md搬运:
本项目严禁用于收费相关业务,您可以借助本项目进行二次开发或者完善
项目借助于腾讯云的云函数
或者阿里云的函数计算
亦或者自己服务器/电脑
运行
请在使用本项目之前确保您拥有以上三个环境之一。
您只需要选择下载本项目,点击项目主页上面的Code
菜单下面的Download Zip
以下载最新版的源码
然后解压到您想存放的路径即可
说明:本地测试的作用是为了便于您完成配置文件的修改。
请先确保您拥有python3
及以上的环境,若您的电脑没有python3
的环境请👉点击下载👈
当您拥有python3
环境时之前,请确保您在安装的时候有选择Add python3.9 to Path
的选项以配置好环境变量,否则请自行百度配置好python3
的环境变量(此步骤的作用是让我们能够直接在命令行中输入pip
/pip3
的命令来安装依赖)
现在,我们就可以通过记事本VSCode/Notepad++(不推荐使用记事本,这里提供两种常用的代码编辑器
和它的下载地址,点击名称即可进入下载)来编辑配置文件
进入fuckTodayStudy/今日校园
文件夹,右键单击config.yml
选择之前安装的代码编辑器
来编辑它
在编辑期间请特别注意config.yml
的格式,如缩进、空格等内容。
配置文件一共拥有多个-user:
,每个-user:
开始到下一个-user:
之间为一个账号的配置,您可以在这里配置多个用户,当然,config.yml
中拥有多种不同签到类型
的配置文件,请删除多余的用户配置,只保留您所以需要的-user:
配置,每个-user:
上面都拥有着该用户配置文件模板的签到类型
说明,请选择好适合您的签到类型填上适当的配置信息(forms:
表单内的title
和value
暂时不用填写,待会儿调试的时候来修改它)
在调试的之前,您最好将config.yml
顶部上面的debug:
从false改为true以更好的定位到您的错误在哪里发生的
在您配置完成config.yml
之后,您就可以在同config.yml
的当前目录下。找到文件资源管理器
的地址栏
(也就是您的文件夹显示窗口的顶部那一栏路径栏),单击空白处,清空路径地址,输入cmd
回车以打开cmd
界面
安装依赖:到这一步,您就可以开始执行以下命令开始安装依赖了。在cmd
中输入粘贴上以下代码按回车即可安装依赖
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
若出现pip3 is not function
类似字眼,请确保您拥有python3
环境并且配置了环境变量
(请回看本地测试第1、2步)
一般情况下安装过程中出现黄色字体可以无视,出现红色字体代表安装依赖出现错误,请在群里询问相关的问题
当您安装完成依赖后,就可以开始进行本地测试(这么多步骤终于到了测试的这一个步骤了,感动到自己有木有!)了
(请在测试之前确保您当日有表单并且还未提交)
同样的在该cmd
中输入python index.py
并运行即可,在这里,您可能会遇到各种各样的错误
No module named xxx
:出现这个情况代表您的依赖没有安装好,请仔细查看本地测试第9步list out of range
:应该是您的表单的问题较多,但是您的config.yml
配置文件的forms里的-form:
字段不够造成的,请多添加几个-form
字段您的标题不正确 xxxx
:这是本地调试的主要作用,用于配置好您的学校对应的表单的标题和答案,请复制此cmd提示的标题来替换您config.yml
中对应的title
字段验证码识别出现问题了xxx
:这代表您的学校必须要填写验证码才能登录,请打开/login
目录里的system.yml
,配置好您的SecrectId
和SecretKey
(腾讯OCR开通地址:点击这里,腾讯访问密钥开通地址:点击这里)success
:代表签到成功,若您未签到成功请反馈BUG其他问题
:请在群里提问,相信很多大佬
都会为您解答。关于提问请在确定是bug之类的时候再来找我,请确定是自己的问题的时候多在群里提问,请勿提问已经说明的问题情况。
当您的各种title
和value
配置完成,那么基本上就可以完成您当日的表单提交了。到这里,本地测试就已经完成了
到这里,您的本地测试就已经完成了。那么您的配置文件已经没有任何问题,可以部署到云端以自动化签到了
特别强调:请注意以下打包
是打包xx文件夹里的内容
还是xx文件夹
😑不推荐您使用腾讯云😑
😑不推荐您使用腾讯云😑
😑不推荐您使用腾讯云😑
之所以不推荐您部署到腾讯云,是因为部署到腾讯云会出现一些其他问题
诸如418
,405
等等的返回代码报错,遇到这种情况请记得更换云函数的地域(如何更换请仔细注意,创建的过程会选择它)
在腾讯云云函数中新建项目
选择自定义创建(函数类型:事件函数;函数名称:随意(fuckCampusHoy
);地域:北京(这就是地域,若控制台出现418错误,请在这里更换地域);部署方式:代码部署;运行环境:python3.6
;函数代码:本地上传zip包)
将fuckTodayStudy/今日校园
里的所有文件整体打包成一个ZIP文件夹(进入今日校园
文件夹CTRL+A
全选,右键,压缩到xxx.zip
文件夹)
回到云函数创建页面,您可点击上传
按钮以选择刚才您创建的zip压缩文件
打开高级配置。其他随意,您应该将其中的内存:
改大一点如256MB,执行超时时间:
改为60(推荐值),单个用户25s左右,请自行计算时间。一般设置大一点比较好
到这里您就配置好云函数的配置了,请您点击完成按钮
以完成项目的初始化,请您耐心等待项目创建成功......
待您创建完成云函数后,请您点击函数代码
以打开编辑器界面
请您点击函数代码
里的在线编辑器
中的终端
里的新建终端
以创建一个终端
执行以下代码以安装您的依赖到云函数中
pip3 install -r ./src/requirements.txt -t ./src -i https://mirrors.aliyun.com/pypi/simple
若您成功安装依赖,那么您的在线编辑器
大致将如下图所示,左侧增加了一坨文件夹,底部有个黄色的WARNING
提示
特别的,在这里当您安装完成依赖后,您需要往下滑动,点击一下部署
按钮以保存您在云函数上的操作,等待您的云函数部署成功之后,即可点击测试按钮以完成您的测试,当出现SUCCESS
并且返回字段也是SUCCESS
代表您在云函数上没有任何问题了
若您没有进行本地测试
,请注意看这里,您现在可以返回到本地测试
的第4.5.6.10.11
步骤以完成您的config.yml
的配置。若您之前进行了本地测试请您忽略本步骤
既然测试完成,那么就开始实现每天的自动化签到了。请您在刚才的网页页面上,找到触发管理
并打开它,创建触发器
。在触发周期上
选择自定义触发周期
,在Cron表达式
中输入1 0 0/8/18/23 * * * *
(本cron表达式
代表每天的0、8、18、23点01分执行一次)(更多cron表达式
请自行查看它的规则)
点击提交即可完成自动化签到的部署了
✈Now, enjoy it please!(子墨师兄的口头禅)✈
阿里云和腾讯云的区别:阿里云的层管理有点问题,同时阿里云没有。函数入口和阿里云有区别(对您而言这个没区别)终端
功能,没法使用pip
命令安装依赖
😝强烈推荐使用阿里云😝
😝强烈推荐使用阿里云😝
😝强烈推荐使用阿里云😝
(温馨提示,函数计算的新版代码编辑器有好些BUG,敬请期待它的完善吧!)
在阿里云函数计算 FC上,左上角选择好您要创建函数的的地区,左侧选择服务及函数
新建一个服务,随意填写(英文)名称啥的,然后提交
在该服务下新建
一个函数;选择事件函数
下的配置部署
;设置号函数名称
(英文);运行环境:Python3
;代码包上传;高级设置
修改号内存和时间等
点击这里下载dependency.zip
以下载对应的依赖到本地
回到fuckTodayStudy
目录,将dependency.zip
用压缩工具打开,全部解压到fuckTodayStudy/今日校园
这个路径,也就是将依赖
放到今日校园
目录,
然后再次全选fuckTodayStudy/今日校园
里的代码CTRL+A
全选,邮件,压缩成xxx.zip
压缩文件
回到函数计算网页,点击上传代码以上传压缩包(自行选择好您之前压缩的xxx.zip
文件),然后点击新建
即可,在这里您将等待一个漫长的漫长的漫长的时间...
等待函数新建成功,进入到代码编辑,若您没有进行本地测试
,请注意看这里,您现在可以返回到本地测试
的第4.5.6.10.11
步骤以完成您的config.yml
的配置。若您之前进行了本地测试请您忽略本步骤
点击执行
按钮即可完成阿里云的函数部署,若报错请反馈报错代码截图(请确保本地运行正确先!)
打开触发器
,创建触发器
,服务类型:定时触发器
选择cron表达式,输入cron表达式如0 0 7,12,14 * * *
代表7点、12点、14点各运行一次。自己输入触发器名称
点击确定即可。
点击提交即可完成自动化签到的部署了
✈Now, enjoy it please!(子墨师兄的口头禅)✈
现在,您可以配置邮件推送和qmsg
推送了呢!
以下配置均在config.yml
中进行修改
邮件推送:
若您使用邮件推送,仅仅只需要配置好您的sendType
为0
即可
同时您需要配置的有emailApiUrl
(目前项目免费提供一个)和sendKey
字段(您的邮箱如xxx@qq.com
)
QMSG推送:
若您使用QMSG推送,仅仅只需要配置好您的sendType
为1
即可
同时您需要配置的有myQmsgKey
(qmsg酱生成的)和sendKey
字段(您的已经在QMSG酱上绑定号的一个QQ号码)
pushplus推送:
若您使用pushplus推送,仅仅只需要配置好您的sendType
为2
即可
同时您需要配置的有sendKey
字段(pushplus的token)
当您配置好以上内容后,将会进行消息推送
有任何问题可以留言 关于该项目的bug可以加入原作者的群:870967170 (我也在其中)