菜鸟笔记
提升您的技术认知

用青龙面板实现阿里云盘每日签到

什么是青龙面板 ?

青龙面板 是支持 Python3JavaScriptshellTypescript 的定时任务管理平台。

青龙面板从功能上看,和群晖的 计划任务 很像,都可以定时执行一个任务,并发送通知,只是青龙面板更强大一些。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 whyour ,选择第一个 whyour/qinglong,版本选择 latest

本文折腾时, latest 版本对应为 2.15.17;本文发布时,最新版本已为 2.16.2

docker 文件夹中,创建一个新文件夹 qinglong,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/qinglong/data /ql/data 存放数据库、脚本、日志等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5700 5700

默认没有暴露端口

需要我们点 + 号自行添加

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 qinglong 和 子目录
mkdir -p /volume1/docker/qinglong/data

# 进入 qinglong 目录
cd /volume1/docker/qinglong

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name qinglong \
   --hostname qinglong \
   -p 5700:5700 \
   -v $(pwd)/data:/ql/data \
   whyour/qinglong:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3'

services:
  qinglong:
    image: whyour/qinglong:latest
    container_name: qinglong
    hostname: qinglong
    restart: unless-stopped
    ports:
      - 5700:5700
    volumes:
      - ./data:/ql/data

然后执行下面的命令

# 新建文件夹 qinglong 和 子目录
mkdir -p /volume1/docker/qinglong/data

# 进入 qinglong 目录
cd /volume1/docker/qinglong

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

第一次运行需要点时间,当你在日志中看到 容器启动成功时,表明容器已经开始可以接受访问了

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

设置用户和密码

设置通知方式,很多已经介绍过,像 GotifyPushDeerBark

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

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

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

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

总之设置还是很简单的

设置完成后可以登录了

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

阿里云盘签到

直接介绍功能可能不好理解,正好老苏在研究怎么给阿里云盘自动签到,开始是准备用 docker 的,但是需要自己编译,所以干脆还是用 青龙面板 来解决吧

获取 refresh_Token

本章节图片来自:https://github.com/mrabit/aliyundriveDailyCheck

  • 方法一:自动获取:

网页上登录阿里云盘后,控制台粘贴JSON.parse(localStorage.token).refresh_token

  • 方法二:手动获取

网页上登录阿里云盘后,可以在开发者工具 -> Application -> Local Storage 中的 token 字段中找到。

注意:不是复制整段 JSON 值,而是 JSONrefresh_token 字段的值,如下图所示红色部分:

添加依赖项

进入左侧菜单 --> 依赖管理 --> 新建依赖

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

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

新建应用

从后面的设置上,没看到哪里使用了生成的 Client IDClient Secret,但从 qlApi.js 看似乎有用到,官方的说明是用于自动更新环境变量内 refreshToken 配置的,所以这一步可能还是需要的

进入左侧菜单 --> 系统设置 -> 应用设置 -> 新建应用

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

成功后会看到生成了 Client IDClient Secret

添加环境变量

进入左侧菜单 --> 环境变量 --> 新建变量

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

创建成功之后

添加订阅

进入左侧菜单 --> 订阅管理 --> 新建订阅

可以在 名称 中直接粘贴下面的命令行

# 命令/脚本
ql repo https://github.com/mrabit/aliyundriveDailyCheck.git "autoSignin" "" "qlApi"

然后再调整几个必填项:

  • 名称:可以改了容易识别的,比如:阿里云盘签到
  • 链接:国内用户,可以挂个代理:将 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/qinglong

mrabit/aliyundriveDailyCheck: 阿里云盘每日签到脚本 青龙面板支持
地址:https://github.com/mrabit/aliyundriveDailyCheck