用青龙面板实现阿里云盘每日签到
什么是青龙面板 ?
青龙面板是支持Python3、JavaScript、Shell、Typescript的定时任务管理平台。
青龙面板从功能上看,和群晖的 计划任务 很像,都可以定时执行一个任务,并发送通知,只是青龙面板更强大一些。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 whyour ,选择第一个 whyour/qinglong,版本选择 latest。
本文折腾时,
latest版本对应为2.15.17;本文发布时,最新版本已为2.16.2

卷
在 docker 文件夹中,创建一个新文件夹 qinglong,并在其中建一个子文件夹 data
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/qinglong/data |
/ql/data |
存放数据库、脚本、日志等 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
5700 |
5700 |
默认没有暴露端口

需要我们点 + 号自行添加

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 qinglong 和 子目录 |
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 qinglong 和 子目录 |
运行
第一次运行需要点时间,当你在日志中看到 容器启动成功时,表明容器已经开始可以接受访问了

在浏览器中输入 http://群晖IP:5700 ,第一次运行会有初始化向导

设置用户和密码

设置通知方式,很多已经介绍过,像 Gotify、PushDeer、Bark 等

老苏选择了 Server酱,每天有 5 条免费的微信通知

但这里保存会报错,只能跳过,不知道是不是这个版本的 Bug

但也不是在 系统设置 –> 通知设置中设置,因为这里设置,只能收到测试通知和设备登录消息,任务执行的通知还是收不到

只有在 配置文件中设置才能收到任务执行的日志消息

总之设置还是很简单的

设置完成后可以登录了

下面是登录成功后的主界面

阿里云盘签到
直接介绍功能可能不好理解,正好老苏在研究怎么给阿里云盘自动签到,开始是准备用 docker 的,但是需要自己编译,所以干脆还是用 青龙面板 来解决吧
获取 refresh_token
本章节图片来自:https://github.com/mrabit/aliyundriveDailyCheck
- 方法一:自动获取:
网页上登录阿里云盘后,控制台粘贴JSON.parse(localStorage.token).refresh_token

- 方法二:手动获取
网页上登录阿里云盘后,可以在开发者工具 -> Application -> Local Storage 中的 token 字段中找到。
注意:不是复制整段
JSON值,而是JSON里refresh_token字段的值,如下图所示红色部分:

添加依赖项
进入左侧菜单 –> 依赖管理 –> 新建依赖

- 依赖类型:默认的
nodejs - 名称:手动添加
axios

安装完成后,状态会有提示

新建应用
从后面的设置上,没看到哪里使用了生成的
Client ID和Client Secret,但从qlApi.js看似乎有用到,官方的说明是用于自动更新环境变量内refreshToken配置的,所以这一步可能还是需要的
进入左侧菜单 –> 系统设置 -> 应用设置 -> 新建应用

- 名称:中英文都是可以的;
- 权限:选择
环境变量

成功后会看到生成了 Client ID 和 Client Secret

添加环境变量
进入左侧菜单 –> 环境变量 –> 新建变量

- 名称:都是用于标识的,自己知道就行
- 值:填入前面获取到的阿里云盘的
refresh_token,如果你有多个账号,直接回车换行 ,输入另一个即可

创建成功之后

添加订阅
进入左侧菜单 –> 订阅管理 –> 新建订阅

可以在 名称 中直接粘贴下面的命令行
1 | # 命令/脚本 |
然后再调整几个必填项:
名称:可以改了容易识别的,比如:阿里云盘签到;链接:国内用户,可以挂个代理:将https://github.com/mrabit/aliyundriveDailyCheck.git改为https://ghproxy.com/github.com/mrabit/aliyundriveDailyCheck.git;唯一值:不用管,默认生成的就可以;定时类型:用默认的crontab就可以;定时规则:这是更新订阅上面github上代码的时间,比如 :0 0 3 * * ?,表示明天凌晨3点检查更新
关于
定时规则,可以看这两篇文
- 青龙面板之定时任务cron表达式的填写规则(https://lcl101.cn/archives/123)
- 青龙面板定时规则解析,Cron 两张语法表达式(http://ttsqq.top/3415.html)

需要手动运行一次,直接点 运行 按钮

执行的日志

进入左侧菜单 –> 定时任务

点 运行 按钮后,查看日志

参考文档
whyour/qinglong: 支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台(Timed task management platform supporting Python3, JavaScript, Shell, Typescript)
地址:https://github.com/whyour/qinglongmrabit/aliyundriveDailyCheck: 阿里云盘每日签到脚本 青龙面板支持
地址:https://github.com/mrabit/aliyundriveDailyCheck青龙面板之定时任务cron表达式的填写规则 - LCL101’s Blog
地址:https://lcl101.cn/archives/123/青龙面板定时规则解析,Cron 两张语法表达式 - 带你薅羊毛
地址:http://ttsqq.top/3415.html