挂柯南
服务器配置
// 安装venv
python3 -m venv venv
// 启动venv
. venv/bin/activate
// 升级pip
pip install --upgrade pip
// 根据依赖文件安装环境
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
// 设置全局变量
export FLASK_APP=cherry.py
export FLASK_ENV=development
// 启动临时服务
flask run --host=0.0.0.0 -p 8001
// beta
flask run --host=127.0.0.1 -p 6000
// 启动永久服务
gunicorn cherry:app -c gunicorn.conf.py
// 查看已启动服务
pstree -ap|grep gunicorn
// 关闭某服务
kill (pid)
//关闭venv
deactivate
错误代码一览
/api/login 400:数据校验失败 510:账号或密码错误 511:请填写手机号 512:教务挂了 513:教务报错 200:OK
/api/game/schedule/upload 400:数据校验失败 510:排名表修改失败
/api/game/schedule/get 400: 数据校验失败 510:排名表获取失败
game
- /api/game/schedule/upload
- data
- nick
- count
- time
- sign
- data
- /api/game/schedule/get
- data
- sign
- data
新版改造
用户组功能
- 主进程挂一个我的账号用来进行课表的爬取
- 第一次登录要进行账号密码的校验,然后对称加密进数据库
- 每天0点开始刷新所有人的课表,以及所有人的成绩
- 每个用户组的id是五位数字加字母的组合
- 每个用户组成员不设上限
- 提供每个用户组下的个人课表以及个人总体课表
- 允许设置组级别的课程(全组个人课表及组课表可见)
- 数据库按课程存储,字段:sid, real_name, course, weeks, weeks_split, teacher, room, is_personal, day, period
- 登录的时候返回所有必要信息,剩下信息单独返回
- 组信息
- 刷新课表(使用cookie加速
- 刷新成绩(使用账号密码
背景图片上传
- 上传图片,id保存在数据库,和个人信息一起
数据库字段
log
- time
- type
- value
config
- key
- value
user
- uid 用户唯一识别码,教务下发
- invite_list 邀请内容
- cid 一卡通号
- sid 学号
- real_name 真实姓名
- pwd 加密后的密码
- setting 用户设置
- bg 课表背景图片
- avatar 头像
- last_update 最后课程更新时间
group
- group_id 唯一标识
- group_name 用户组名称
- log_list 操作记录
- admin_list 管理列表
- creater_sid 创建者学号
- avatar 头像
link
- cid 一卡通号
- group_id 用户组id
user_crouse
- crouse_id 课程id
- sid 学号
- real_name 真实姓名
- crouse 课程名
- weeks 中文周数
- weeks_split 渲染用周数列表
- teacher 教师名
- room 教室名
- is_personal 是否是自定义课程
- day 星期
- period 上课时间
group_crouse
- crouse_id 课程id
- group_id 用户组id
- sid 学号
- real_name 真实姓名
- crouse 课程名
- weeks 中文周数
- weeks_split 渲染用周数列表
- teacher 教师名
- room 教室名
- day 星期
- period 上课时间
数据库错误码
OK 200
insert 1
insertUser '学生信息数据库插入失败', 100 insertInvite '用户组邀请数据库插入失败', 101 bindUserGroup '用户与用户组绑定数据库插入失败', 102 insertGroup '用户组数据库插入失败', 103 addLog '操作记录数据库插入失败', 104 groupInsertAdmin '用户组侧加入管理数据库插入失败', 106 userInsertCrouse '用户自定义课程数据库插入失败', 107 userInsertAllCrouse '用户所有课程数据库插入失败', 108 insertRank '排名表数据库插入失败', 109 groupInsertCrouse '用户组课程数据库插入失败', 110 insertLog '系统操作记录数据库插入失败', 111
find 3
findCookie 'cookie数据库查询失败', 300 findUser '学生信息数据库查询失败', 301 findGroup '用户组信息数据库查询失败', 302 findRank '排名表数据库查询失败', 303 findUserCrouse '用户课程数据库查询失败', 304 findGroupCrouse '用户组课程数据库查询失败', 305 findLog '系统操作记录数据库查询失败', 306
update 4
updateCookie 'cookie数据库更新失败', 400 updateAvatar '头像数据库更新失败', 401 updateBg '背景图数据库更新失败', 402 updateLastUpdate '数据更新时间数据库更新失败', 403
delete 5
deleteInvite '用户组邀请数据库删除失败', 500 unbindUserGroup '用户与用户组解绑数据库删除失败', 501 userDeleteAllCrouse '用户所有课程数据库删除失败', 502 groupDeleteAdmin '用户组侧移除管理数据库删除失败', 503 deleteGroup '解散用户组数据库删除失败', 504 userDeleteCrouse '用户自定义课程数据库删除失败', 505 groupDeleteCrouse '用户组课程数据库删除失败', 506
接口错误代码
/login
400 数据不合法 510 学生信息数据库查询失败 511 账号或密码错误 512 用户组信息数据库查询失败 513 请填写手机号 514 教务返回的错误 515 教务挂了 516 用户所有课程数据库删除失败 517 用户所有课程数据库插入失败 518 用户课程数据库查询失败 519 用户组课程数据库查询失败