青龙面板部署GLaDOS自动签到
青龙面板部署 GLaDOS 自动签到脚本与 Telegram 推送配置指南
一、 环境准备与脚本部署
1. 基础依赖配置
- 登录青龙面板 $\rightarrow$ 依赖管理 $\rightarrow$ Python3 $\rightarrow$ 新建依赖。
- 输入
requests并确认安装。
2. 脚本文件创建
- 进入 脚本管理 $\rightarrow$ 新建文件。
- 文件名命名为:
glados_checkin.py。 - 粘贴脚本源码并保存。
3. 环境变量设置
在青龙面板 环境变量 中添加必要变量:
| 变量名 | 示例 / 说明 | 必填项 |
|---|---|---|
GLADOS_COOKIE | koa:sess=xxx; koa:sess.sig=xxx; | 是 |
注意:多账号配置可用 &、||| 或换行分隔。
二、 Cookie 提取方法
建议使用浏览器的无痕(隐身)模式操作,避免浏览器扩展与缓存干扰:
- 按
Ctrl + Shift + N(Mac 使用Cmd + Shift + N)打开无痕窗口。 - 按
F12打开开发者工具,切换到 Network(网络) 标签页。 - 访问并登录 GLaDOS 官网。
- 在 Network 面板搜索框输入
checkin或status,触发一次页面刷新或签到操作。 - 点击任意出现的请求,在 Headers(标头) $\rightarrow$ Request Headers(请求标头) 中找到
cookie:字段。 - 复制完整字符串,并确认其中包含
koa:sess=与koa:sess.sig=核心字段。 - 注意事项:提取完成后不要点击网页上的“退出登录”,直接关闭无痕窗口即可,否则 Cookie 会立即失效。
三、 Telegram 机器人创建与配置
1. 创建机器人
- 在 Telegram 中搜索官方账号
@BotFather。 - 发送指令
/newbot。 - 输入机器人的显示名称(例如:
My Checkin Bot)。 - 输入机器人的唯一用户名(Username),必须以
bot结尾(例如:zgladoscheckin_bot)。 - 获取 BotFather 返回的
API Token(格式如:8777280554:AAHCbGsUi...)。
2. 获取用户 ID (Chat ID)
- 在 Telegram 中搜索
@userinfobot或@getmyid_bot。 - 点击 Start 发送消息,获取回复信息中的纯数字
Id。
3. 激活机器人
在 Telegram 中主动搜索创建的机器人 Username(如 @zgladoscheckin_bot),点击 Start 发送任意消息。未进行此步骤会导致推送返回 400 Bad Request: chat not found 错误。
四、 两种通知推送实现方案
方案 A:使用青龙面板系统级通知(推荐)
直接由青龙系统管理通知,无需在青龙环境变量中配置 TG_BOT_TOKEN 与 TG_USER_ID(若已添加请删除/禁用,防止脚本内部调用网络连接超时)。
- 进入青龙面板 系统设置 $\rightarrow$ 通知设置。
- 选择 Telegram 渠道并填入
Bot Token和Chat ID。 - 测试通过后保存。
解决“重复签到不触发系统通知”问题
青龙系统默认可能静默处理非报错日志。如需每次运行均强制推送,可在 glados_checkin.py 中进行以下修改:
1. 修改 main() 函数返回值
将 main() 函数末尾的返回逻辑修改为同时返回状态码、标题与内容:
# 将 main() 末尾修改为:
exit_code = 1 if (ok == 0 and repeat == 0 and len(cookies) > 0) else 0
return exit_code, title, content
2. 修改脚本入口代码
将脚本底部的 if __name__ == "__main__": 替换为:
if __name__ == "__main__":
ret = main()
if isinstance(ret, tuple):
exit_code, title, content = ret
else:
exit_code, title, content = ret, "GLaDOS 签到", "执行完毕"
try:
from notify import send
send(title, content)
logger.info("已通过青龙 notify 模块强制发送通知")
except Exception as e:
logger.debug("未能调用青龙 notify 模块: %s", e)
sys.exit(exit_code)
方案 B:脚本内置推送(适用于具有网络访问条件环境)
若青龙服务器所在网络可直连 Telegram API,也可在青龙 环境变量 中直接添加以下变量:
| 变量名 | 说明 |
|---|---|
TG_BOT_TOKEN | BotFather 提供的 API Token |
TG_USER_ID | 个人 Telegram 纯数字 ID |
注:若运行在中国大陆境内网络且未配置网络代理,此方案会在日志中报 ConnectTimeoutError: Connection to api.telegram.org timed out 错误。
五、 定时任务配置与 Cron 语法参考
- 任务名称:GLaDOS 自动签到
- 任务命令:
task glados_checkin.py - 定时规则语法(标准 5 位 Cron):
$$\begin{matrix} \text{分} & \text{时} & \text{日} & \text{月} & \text{周} \\ \downarrow & \downarrow & \downarrow & \downarrow & \downarrow \\ \mathbf{6} & \mathbf{0} & \mathbf{*} & \mathbf{*} & \mathbf{*} \end{matrix}$$
常用 Cron 示例
| 规则 | 执行时间 |
|---|---|
6 0 * * * | 每天凌晨 00:06 执行 |
0 8 * * * | 每天早上 08:00 执行 |
30 23 * * * | 每天晚上 23:30 执行 |