GithubHelp home page GithubHelp logo

luzy99 / seuautologin Goto Github PK

View Code? Open in Web Editor NEW
98.0 3.0 556.0 55 KB

东南大学信息门户自动登录,SEU每日自动健康打卡,附赠绩点计算功能。Github Action一键部署,自动打卡

Python 100.00%

seuautologin's Introduction

SEU Auto Login

东南大学信息门户自动登录,采用requests库,获取登录session,无需浏览器依赖,全平台通用。目前已添加GitHub Action自动部署功能,无需服务器,一键fork部署!!!🎉

本项目仅供学习使用

  • 🌡自动每日健康上报 daily report
  • 💯绩点计算

更新日志

2022-06-26:重大bug,已适配信息门户新登录逻辑,请使用老版本的用户迅速更新至此版本,否作无法正常登录打卡!!!

更新方法:在自己 fork 的仓库中点击 Fetch upstream

图片

使用指南:Github Action自动部署!

  1. fork本仓库

    image-20210405124959083

  2. 进入您账号下的SEUAutoLogin仓库,点击Settings,找到Secrets,点击 New repository secret新建仓库密钥

    image-20210405124603956

  3. 新建2个key:CARD_NUM, PASSWORD,输入你的一卡通号密码

    image-20210405125326461

    ​ 如下图:

    image-20210405125412870

  4. 至此已经设置完成(默认每天北京时间8点31分上报),务必先手动运行一下以激活此后的自动运行。

    步骤如下图:

    image-20210405125843879

  5. 运行结果

    image-20210405130018830

⚠如果无法自动执行,在readme文件中随便加个回车,再commit,push即可


以下为本地开发指南,欢迎有兴趣的小伙伴参与到本项目的维护工作中~

📋目录结构

│  config.json	# 配置文件
│  dayReport.py	# 每日上报脚本
│  gpa.py		# gpa计算脚本
│  ids-encrypt.js	# SEU 身份认证AES加密算法
│  ids_encrypt.py	# js2py调用js代码
│  login.py		# 登录
│  readme.md
│  requirements.txt

🛠安装依赖

开发环境:python 3.7

依赖包

requests~=2.23.0
Js2Py~=0.70
beautifulsoup4~=4.9.3

安装依赖,请执行:

pip install -r requirements.txt

📐功能说明(本地部署)

请先在config.json中填写好一卡通号和密码

    "user": {
        "cardnum": "你的一卡通号",
        "password": "登录密码"
    },

自动每日健康上报

  • 运行方式,双击或命令行输入运行
./dayReport.py

默认采用昨日信息填报。

  • 可选,不推荐)手动设置填报信息

    出现问题概不负责(逃

    修改config.json文件,修改或添加配置,以下配置将覆盖昨日信息

    "dailyReport": {
            "school": {
                "DZ_JSDTCJTW": 36.5,	// 体温
                "DZ_SZWZLX": "002",		// 在校内
                "DZ_SZWZLX_DISPLAY": "在校内",
                "LOCATION_PROVINCE_CODE": "",
                "LOCATION_PROVINCE_CODE_DISPLAY": "",
                "LOCATION_CITY_CODE": "",
                "LOCATION_CITY_CODE_DISPLAY": "",
                "LOCATION_COUNTY_CODE": "",
                "LOCATION_COUNTY_CODE_DISPLAY": "",
                "DZ_SZXQ": "002",
                "DZ_SZXQ_DISPLAY": "九龙湖校区"
            },
        // 若不清楚区域编号请勿随意修改!!!!
            "home": {
                "DZ_JSDTCJTW": 36.555,
                "DZ_SZWZLX": "003",		// 在校外(在南京以外)
                "DZ_SZWZLX_DISPLAY": "在校外(在南京以外)",
                "LOCATION_PROVINCE_CODE": "110100",		// 省份编号
                "LOCATION_PROVINCE_CODE_DISPLAY": "北京市",
                "LOCATION_CITY_CODE": "110100",		// 城市编号
                "LOCATION_CITY_CODE_DISPLAY": "北京市",
                "LOCATION_COUNTY_CODE": "110101",	// 区编号
                "LOCATION_COUNTY_CODE_DISPLAY": "市辖区",
                "DZ_SZXQ": "",
                "DZ_SZXQ_DISPLAY": ""
            }
        ...
    }

    带配置启动方式:

    ./dayReport.py -c home

GPA计算

按照学生手册公式计算,仅供参考

  • 运行方式

    ./dayReport.py -t 学期号
    usage: gpa.py [-h] [--term TERM]
    
    Test for argparse
    
    optional arguments:
      -h, --help            show this help message and exit
      --term TERM, -t TERM  学期 20(计算20-21学年所有学期), 2020-2021-1(指定某一学期)
    examples:
    	
  • examples

    # 一个学年
    ❯ ./gpa.py -t 19
    XXX  登陆成功!
    成功读取 50 门课程成绩
    必修总学分:90.000000, 累计绩点:4.8
    Terms in  ['2019-2020-1', '2019-2020-2', '2019-2020-3', '2019-2020-4']
    学年必修总学分:46.000000, 学年绩点:4.522826
    
    # 指定学期
    ❯ ./gpa.py -t 2020-2021-1
    XXX  登陆成功!
    成功读取 50 门课程成绩
    必修总学分:90.000000, 累计绩点:4.8
    Terms in  ['2020-2021-1']
    学年必修总学分:10.000000, 学年绩点:4.629412

seuautologin's People

Contributors

469mapabu avatar luzy99 avatar sciroccogti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

seuautologin's Issues

过了上报时间后仍能上报

应当增加时间限制,每日15:00后不能上报。

(导员批评我以后一回头发现我用脚本报上了,填报时间16:02🙃)

最近20次都失败,每次都出现keyError这样的问题,请问大佬怎么解决呢

Run python ./dayReport.py -u *** -p ***
python ./dayReport.py -u *** -p ***
shell: /usr/bin/bash -e {0}
env:
pythonLocation: /opt/hostedtoolcache/Python/3.8.13/x64
LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.8.13/x64/lib
2022-08-06 09:43:22.898969+08:00
Traceback (most recent call last):
File "./dayReport.py", line 165, in
ss = login(configs['user']['cardnum'], configs['user']['password'])
File "/home/runner/work/SEUAutoLogin/SEUAutoLogin/login.py", line 23, in login
form['password'] = encryptAES(password, form['pwdDefaultEncryptSalt'])
KeyError: 'pwdDefaultEncryptSalt'
Error: Process completed with exit code 1.

DZ_DBRQ 是起什么作用?

我看获取到的上次记录是空(None),但生成的记录是昨天的日期。不太明白这个参数的意思。

无法获取 tempFormData

wid_res.text 如下:

{
    "datas": {
        "getMyTodayReportWid": {
            "totalSize": 0,
            "pageSize": 1000,
            "rows": []
        }
    },
    "code": "0"
}

被识别为非人工打卡而提示“健康状态异常”

是这样,我属于校外住宿。如果要进校,需要提前一天申请入校。某次我申请的时候,提示我“健康状态异常”。后来我问了东大信息化的老师,告诉我是因为前一天使用了非人工手段进行打卡,系统能够识别出来到底是自己打的卡还是非人工打卡。我就很奇怪,他们是怎么识别出来的,有没有解决办法?

多高校打卡合作邀请

朋友您好!

我是电子科技大学自动打卡项目的作者,现欲开发一款各高校通用的、基于 GitHub Actions 的自动打卡工具;目前框架与主程序都已初步搭建完毕,后续的开发者只需要编写插件即可。

一位朋友向我推荐了您的项目。拜读之后,我觉得您的代码水平与逻辑都十分地优秀且可靠,不知您是否愿意了解一下上述的项目;如果能参与开发,更是我的荣幸。您随时可以通过 QQ 联系我:1014305148。

期待与您的合作,相互学习、共同进步!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.