# CDU-Lib-Robot
**Repository Path**: ahaox/CDU-Lib-Robot
## Basic Information
- **Project Name**: CDU-Lib-Robot
- **Description**: 成都大学图书馆座位系统全自动机器人
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 1
- **Created**: 2021-06-01
- **Last Updated**: 2025-08-07
## Categories & Tags
**Categories**: r-p-a--ji-qi-ren-guo-cheng-zi-dong-hua
**Tags**: None
## README
## 一、CDU-Lib-Robot 图书馆全自动机器人
### 1. CDU-Lib-Robot简介
`CDU-Lib-Robot`为成都大学图书馆座位预约系统全自动工具。`每天定时预约座位(预约的是第二天的位置, 支持多时间段预约)` + `自动签到` + `签退`。
每天的`座位预约` 和 `签到签退`情况会在 完成后 `自动推送到你的微信`,实时反馈每日`座位预约`和`签到`, `签退`情况。无需人工操作。
》》》》》》》》 重点:`无视`图书馆座位系统 `校园网` 限制 《《《《《《《《
GitHub链接: https://github.com/ahaox/CDU-Lib-Robot
Gitee链接: https://gitee.com/ahaox/CDU-Lib-Robot
作者:`ahao`,网站: https://www.uxhao.com 本项目的实现过程已更新到网站上。
### 2. 发布日志
2021.06.01 发布 v1
2021.07.17 发布 v2(clrplus), 二维码无法签退,更新后直接通过预约记录id向签退接口发起请求进行签退。
### 3. 发布初心
`方便成大考研学子 和 图书馆常驻专家 使用,摆脱每天都要预约位置 和 签到 签退的烦扰!`
》》》请勿将CDU-Lib-Robot 用于包括但不限于 `恶意占座` 等浪费图书馆公共资源行为《《《
### 4. 注意事项
① 请勿将`CDU-Lib-Robot`用于 `占座`等浪费图书馆资源行为。
② `CDU-Lib-Robot`完全免费,如果您通过其他渠道消费购买,请一定口吐芬芳对方!!!
③ `CDU-Lib-Robot`不涉及第三方信息收集,不存在保存使用者的账号密码等信息。
④ 本仓库发布的`CDU-Lib-Robot`项目中涉及的任何脚本,仅用于`CDU-图书馆座位预约`系统,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
⑤ `ahao` 对任何脚本问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害.
⑥ 请勿将`CDU-Lib-Robot`项目的任何内容用于商业或非法目的,否则后果自负。
⑦ 如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关脚本。
⑧ 以任何方式查看此项目的人或直接或间接使用`CDU-Lib-Robot`项目的任何脚本的使用者都应仔细阅读此声明。`ahao` 保留随时更改或补充此免责声明的权利。一旦使用并复制了任何相关脚本或`CDU-Lib-Robot`项目,则视为您已接受此免责声明。
⑨ 您必须在下载后的24小时内从计算机或手机中完全删除以上内容。
## 二、主要功能
#### 1. 无视校园网限制
zhòng suǒ zhōu zhī, 成大图书馆座位系统需要校园网才能访问。本项目无需校园网!!!!
#### 2. 提前一天预约座位
预约后微信推送 预约消息
#### 3. 支持多时间段预约
#### 4. 支持自动签到签退
签到成功,自动推送消息到微信
签退成功,推送微信

## 三、使用教程(小白版)
### 1. 下载项目代码
进入本项目代码仓下载ZIP压缩包到本地,并解压到桌面。(建议从gitee下载)

解压到桌面
### 2. 进入云函数
腾讯云函数免费开通地址,地址:https://console.cloud.tencent.com/scf/list-create?rid=1&ns=default
登录以后按照流程自行开通。
### 3. 创建座位预约服务云函数
> 注意:如果要使用,座位预约,签到,签退功能需要创建三个云函数
#### 3.1 创建函数
创建函数名`CDU-Lib-Robot-Reserve` (用于座位预约服务),创建方式选择 **自定义创建** ,运行环境选**Python 3.6**,执行方法设置为 `MainReserve.main`
#### 3.2 上传代码
确保环境为**python 3.6**,执行方法改为:`index.main`,提交方式一定要选 **本地上传文件夹** ,然后选择解压到桌面的文件夹 **isp-cdu-master** ,然后点击这个上传把文件夹上传进来。
文件夹上传成功后,点击`高级配置`
#### 3.3 高级配置
内存用不了太大,**128MB**就够了,超时时间改为最大的**900秒**,然后点击最下面的完成。
#### 3.4 配置账号密码、座位信息、预约时间
配置参数说明:
| 参数名 | 参数示例 | 参数说明 |
| ----------------- | ------------------- | -------------------------------------------------- |
| username | 2018XXXXXXXX | 成大学号 |
| password | 123456abcd | 教务处密码(和图书馆密码一致,不一致请修改) |
| startTime | 0820,2122 | 每个预约时段的起始时间,多个起始时间用英文逗号隔开 |
| endTime | 1405,2230 | 每个预约时段的结束时间,多个起始结束用英文逗号隔开 |
| devLab | 10xxxxx19 | 座位区域编码 |
| devId | 10xxxxx95 | 座位编号 |
| sysId | 1II | 座位sysid,默认为1II,可以不修改 |
| isEveryDayReserve | True | 是否每天都预约,当前版本只支持每天都预约。请勿修改 |
| sckey | SCU1348xxxxxxxxxxxx | Server酱的密匙,用于微信推送消息 |
具体配置示例请参考配置文件。
自己改下`config.ini`里的`账号密码`、`预约时间`、`座位信息`及`Server酱密匙`,更改完后按`Ctrl+S` 保存修改。
预约座位信息的获取方式: [点击这里](GetSeatInfo.md)
**Server酱密匙** 用于微信推送打卡情况,需要自己申请,申请地址: http://sc.ftqq.com/,

#### 3.5 安装依赖
点击终端,然后选择新终端,显示终端窗口,在终端窗口里面输入:
```bash
cd src/ && /var/lang/python3/bin/python3 -m pip install -r requirements.txt -t .
```

输入命令后回车执行,等待安装完成。大概1分钟左右。
如下图所示,出现Successfully 表示成功

① 部署函数

② 部署成功,点击测试


#### 3.6 设置定时
新建触发器,触发周期为自定义,表达式就是每天的什么时候执行,这里设置为每天0点0分40秒,可以自行修改(不建议修改),填好后点击提交即可,此时 `座位预约服务` 就已经部署好了。
时间表达式具体可参考:[云函数 定时触发器 - 开发指南 - 文档中心 - 腾讯云 (tencent.com)](https://cloud.tencent.com/document/product/583/9708#cron-.E8.A1.A8.E8.BE.BE.E5.BC.8F)

### 4. 签到服务
#### 4.1 克隆云函数
直接复制 ==座位预约服务云函数== `CDU-Lib-Robot-Reserve` , 把函数名称更改为:`CDU-Lib-Robot-SignIn`

#### 4.2 修改函数执行方法
进入云函数后,修改执行方法为:`MainSignIn.main`
点击部署,部署成功后再测试

#### 4.3 设置定时
签到定时的设置是根据 在 3.4时设置的预约时间段的开始时间来设置的,
比如:我预约的时间段为每天 08:20 - 14:20, 14:25 - 20:25
则这里需要创建两个触发器:
第一个时间段 Cron表达式分别为: `0 16 8 * * * *` (表示每天8点16分开始执行签到服务,也就是比第一个时间段的开始时间提起4分钟进行签到)
第二个时间段 Cron表达式分别为: `0 21 14 * * * *` (表示每天14点21分开始执行签到服务,也就是比第二个时间段的开始时间提起4分钟进行签到)

### 5. 签退服务
#### 5.1 克隆项目
直接复制 ==座位预约服务云函数== `CDU-Lib-Robot-Reserve` , 把函数名称更改为:`CDU-Lib-Robot-SignOut`

#### 5.2 修改函数执行方法
进入云函数后,修改执行方法为:`MainSignOut.main`

点击部署,部署成功后再测试

#### 5.3 设置定时
设置方式和签到服务一样,但是时间是根据结束时间来设定的。
比如:我预约的时间段为每天 08:20 - 14:20, 14:25 - 20:25
则这里需要创建两个触发器:
第一个时间段 Cron表达式分别为: `0 16 14 * * * *` (表示每天14点16分开始执行签退服务,也就是比第二个时间段的结束时间提起4分钟进行签退)
第二个时间段 Cron表达式分别为: `0 21 20 * * * *` (表示每天20点21分开始执行签退服务,也就是比第二个时间段的结束时间提起4分钟进行签退)
## 四、打赏作者

**金额不论大小, 一分也是爱。**