当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
0 Star 0 Fork 0

1523Cooperation/SchoolCardWatcher
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

玉林高中校园卡余额监控程序

上课的时候无聊做出来的小程序,能够监控校园卡的余额,并在其低于某个值时发送微信提醒某个人(比如你妈)


原理

  1. 程序启动,用户扫码登录微信
  2. 访问建行悦生活网站自动获取Cookie
  3. 将卡号和其他信息Post至校园卡充值的api
  4. 网站返回该卡卡主的姓名(这个信息我取不到,如果有大佬能做到的话欢迎指教或者提交Pull Request)和余额,程序会提取余额
  5. 判断余额大小,达成条件则使微信机器人发送提醒信息

运行环境

源码

基于Python3,从源码运行需要安装itchat模块

pip install itchat

二维码显示错误可能需要安装pillow

pip install pillow

.exe Windows可执行文件

暂时没有编译成.exe

直接双击文件即可

Linux二进制可执行文件

暂时没有编译成二进制文件

注意:程序仅在CentOS6.7上编译通过,不能保证在其他版本的Linux上能成功运行,理论上,类CentOS的系统都可以作为运行环境


下载

你可以使用Git

git clone https://github.com/Maplelan/SchoolCardWatcher.git && cd SchoolCardWatcher

亦或是桌面版网页的绿色按钮Download ZIP

Download

等等......总之,把那仨.py文件和Config.cfg下载来就行了


配置文件

Windows下不阐述

Linux下用文本编辑器编辑Config.cfg:

vi Config.cfg

你将会看到以下内容(不包括用#修饰的注释)

按下 i 键进行编辑,按下ESC键并输入:wq保存退出

[global]
card = xxxxxx
sendto = xxxxxx
logintype = 0
min_Balance = 50.0
user = xxx

其中,card为卡号,替换等号后面的数字为你的校园卡卡号(入学发时贴在卡上的、挂失用的6位数)

sendto后填上一个微信号,注意,是微信号,不是别的什么东西。填上你妈的微信号吧

IMG

min_Balance监控的条件,卡余额低于这个值时会发微信

user程序登录你的微信后会产生一个缓存文件,这样,短时间内退出程序的话,再次运行不会提示你登录,user的值代表了这个缓存文件的文件名,后期可能会增加多卡监控(有空的话),目前来看这个值可以随便设

logintype登录微信的方式,接收一个数字作为它的值。

  • 如果为0,程序运行时将会下载一个二维码图片到程序所在目录下,不要退出程序,打开这个图片扫码登录即可继续

  • 如果为1,程序将会在命令行输出一个二维码,扫码登录即可。如果二维码太小,可以适当地增大这个值,比如1.5,2都是可以的 QR登录

  • 如果你的命令行是白底黑字的话,可以键入值 -1

  • 部分系统的字库可能有问题,上面的方格可能是长方形,这样会导致显示的二维码错乱,以至于不能被正常识别,这种时候应该用0作为值,手动打开图片文件扫码


从源码运行

Linux

确保你的命令行在程序所在文件夹(SchoolCardWatcher文件夹)下,用cd命令:

cd <文件夹的名称>

用ls命令查看当前文件夹下的文件列表

ls

确保你已经安装了itchat模块

pip install itchat

然后运行程序

python Launch.py

注意,如果你的系统安装了多个版本的Python,请指定为Python3

python3 Launch.py

此时扫码登录就可以了

Windows

额,我并没有使用过Windows 平台的Python,有编程基础的同学自行尝试吧,注意一下几点

  • 必须使用Python 3, 不支持Python 2
  • 程序依赖于itchat模块,记得安装

从可执行文件运行

如果你闲麻烦,或者不会部署Python环境,可以直接使用已编译好的可执行文件

并没有可执行文件,挖个坑,以后再填


调试

如果我只是想试试看这个程序呢?我并不想真正使用它,只是看看,看看而已

你可以不必微信登录,只需要运行程序前添加你的校园卡卡号作为启动参数就好了:

python Launch.py 151213

如果你的系统有多个版本的Python:

python3 Launch.py 151213

程序会打印你的余额,然后退出


退出程序

  • 在命令行中按下Ctrl+C即打断程序运行
  • 登录微信后会产生一个缓存文件,如果缓存没有过期,再次运行程序可免登录

后台运行

当你断开与远程服务器的链接、退出命令行后,所有在命令行运行的程序会死掉,所以要保持程序一直运行,你需要screen

你可以用screen来模拟一个永不掉线的命令行,要使用screen ,你得先安装它

CentOS: yum -y install screen

Debian: apt-get -y install screen

创建一个新的screen,名叫watcher,注意大小写

screen -S watcher

此时你已经创建并切换到了watcher,然后cd进监控程序的目录,用python启动

扫码登录成功后就可以断开命令行的链接了,名叫watcher的screen仍然在线,程序依然在运行。程序登录你的微信时,手机端上会显示你在网页端登录

如果想退出程序,先

screen -r watcher

切换至watcher界面,你可以看到监控仍在运行, Ctrl+C结束掉它,再输入exit退出并删除watcher界面

开机启动

nohup python3 /<路径>/Launch.py添加到/etc/rc.local的exit0之前即可

未测试,有待研究


其他

  • 关于Linux二进制可执行文件和exe Windows可执行文件,还没来得及弄。实在不懂的同学等我编译出exe再说吧
  • 有时间的大佬可以帮忙编译下,用pyinstaller
  • 没怎么学Python,这是我用Python写的第一个程序,所以代码并不是很规范。如果你有时间,欢迎重构、贡献代码、提交Pull Request,如果遇到bug,也可以到issue提交

空文件

简介

基于Python3,玉林高中校园卡余额监控 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/Cooperation_1523/SchoolCardWatcher.git
git@gitee.com:Cooperation_1523/SchoolCardWatcher.git
Cooperation_1523
SchoolCardWatcher
SchoolCardWatcher
master

搜索帮助