/auto-sign-Dogz

福州大学 今日校园

Primary LanguagePython

福州大学 auto-sign

禁止任何人使用此项目提供付费的代挂服务

感谢ZimoLoveShuang的开发,添加了新功能以及返回消息优化,有条件请支持原作者ZimoLoveShuang

2020.11.06 更新 由于修改了签到API前几天无法正常使用(这几天没空),感谢wxyttty提供了最新的接口。

本项目适配 福州大学 今日校园签到服务,推荐有服务器的伙伴使用,当然由于ZimoLoveShuang模拟了登陆服务对所有学校均支持,云函数可参考原作微调使用。

真·一键部署 + 自动签到

每天 09:0009:50自动签一次,结果发送至邮箱,如果未登陆请使用 python3 login.py重新登陆

新特性

  1. 一键部署 懒,过几天再写,其实挺简单的,感兴趣的自己研究下代码
  2. 自动登陆配置,无需修改代码
  3. 采用生成配置文件,可以(多用户)
  4. 支持福州大学学号、密码登陆
  5. 添加邮件模块,可使用自己邮箱发送结果(也可选择原作者提供的邮箱服务)
  6. 自动注册定时计划
  7. 邮件回复验证码
  8. 能够自动识别验证码图片,但是巧妙避开了登陆密码需要验证码验证的情况 :) 所以用不到。

说明

  1. 仅学习交流~如有不妥请联系本人删除!
  2. 本项目对福州大学签到服务进行了适配
  3. 由于登陆限制,手机端登陆,服务器端会掉线,需重新登陆

这里说明一下:
关于添加福州大学账号密码登陆的原因。 进出校门都要扫码,就导致了每次都要重新登陆!这个和每日签到就没区别了。
由于福大的认证严格,每次登陆会消除上一登陆设备认证,就想到用账号密码登陆代替手机验证码。但是实现了账号密码登陆后,今日校园会对每一台未认证设备进行手机验证,白虾。。。

偶然发现:使用目前登陆设备的CpdailyInfo作为参数,使用账号密码进行登陆是可以跳过认证的!但是需要抓包,以后可以解决这个问题
或者使用手机自带的一键登陆功能
目前来说,进一步实现的成本大于收益,日后可能实现邮件收发验证码,仅此而已
项目完全开源,有想法想学习的同学可以查看代码

  1. 如使用自己邮箱发送,需开启邮箱SMTP服务
  2. 虽然从每日4次改为1次,但是要重视签到
  3. 有很大发挥余地,请充满想象

技术思路、环境

本项目使用python3 3 3 3 3 3 3 你只需要安装python3
环境见requirements.txt
福大登陆使用了加密,闲麻烦从网站提取了加密方法。
福大账号密码与今日校园使用ticket认证,即DES加密登陆成功返回的跳转链接里的mobile_token
福大账号密码登陆需要六次request

  1. 获取extensionpwdDefaultEncryptSaltlt
  2. 验证是否需要验证码(附加一个v与随机数即可避免。。。)
  3. passwordpwdDefaultEncryptSalt使用DES混淆加密
  4. 登陆成功会返回callback链接,需要禁止转发才可获得
  5. 返回来的结果中+会转码成+ 在加密前需解码
  6. 使用门票tecket与今日校园认证

邮件服务器使用smtplibemail实现,难度低,方便。 定时任务使用Linux系统标配:crontab

今日校园账号密码登陆的手机验证码使用了不同的链接,很细节。

这么细节了恳请右上角star 点一下吧!救救孩子=)

注释

/config 用于存储配置文件
/example 示例文件,可以看看
encrypt.js 加密程序
generate_config.py 用于生成配置文件
index_sign.py 适用于每日签到以及午间签到
index_submit.py 适用于健康报表
login_fzu.py 福大统一认证登陆(整合到login)
login.py 登陆(短信验证登陆、福大统一认证)
sendEmail.py 一个简单的自定邮件服务
timedTask 注册自动签到用

使用

  1. 下载项目
# 下拉项目代码
git clone https://github.com/DogeZhang/auto-sign.git && cd auto-sign
  1. 部署代码
# 部署代码
chmod +x install.sh && ./install.sh
  1. Enjoy

详细步骤(可省略, 便于了解代码过程)

  1. 下载项目
# 下拉项目代码
git clone https://github.com/DogeZhang/auto-sign.git && cd auto-sign
  1. 安装必备环境 (仅运行一次)
# 仅有python3 (直接用下面pip3的就好了)
pip install -r requirements.txt -t . -i https://mirrors.aliyun.com/pypi/simple
# 建议使用pip3安装
pip3 install -r requirements.txt -t . -i https://mirrors.aliyun.com/pypi/simple
  1. 登陆
# 按照提示填入信息,相信你会的
python3 generate_config
python3 login.py
  1. 签到
# 每日签到、健康检测-午签到 均适配
python3 login_sign.py
# 健康信息报表
python3 login_submit.py
  1. 总结一下技术要领(四行指令,一句签到)
git clone https://github.com/DogeZhang/auto-sign.git && cd auto-sign
pip3 install -r requirements.txt -t . -i https://mirrors.aliyun.com/pypi/simple
python3 generate_config && python3 login.py
python3 login_sign.py