前言
tele-aria2 是一个可以控制 Aria2 服务端的 Telegram Bot ,它可以发任务到远程 Aria2 进行下载、查看任务、删除任务等操作。准确来说它是一个 Aria2 前端程序,只不过形式不是我们所熟知的 AriaNg 那样的 Web 页面,而是以一个聊天机器人的形式存在。如果 Aria2 配置好联动 Rclone 自动上传,那么就可以实现发送下载链接给 Bot → Aria2 下载 → Rclone 自动上传文件到 Google Drive 等网盘的骚操作。
部署 Aria2
Aria2 一键安装管理脚本 增强版 (GNU/Linux) 和 Aria2 Pro (Docker) 任选其一,这里不做赘述了。如果需要自动上传那么就需要配置联动 Rclone 的步骤,能正常下载并上传即代表部署工作完成,否则忽略这个步骤即可。
获取 Telegram Bot 访问令牌
使用 @BotFather 创建自己的 Bot 并获取访问令牌(<TOKEN>
),过程如图所示:
获取用户 ID
- 给刚创建 Bot 随便发送一个信息
- 访问
https://api.telegram.org/bot<TOKEN>/getUpdates
(替换<TOKEN>
字段),会获得一长串信息,其中"id":
字段后面的数字就是所要获取的用户 ID 。
部署 tele-aria2
为了防止环境不统一导致部署失败将使用 Docker 进行部署。
- 首先编写一个配置文件,从上到下依次是 Aria2 RPC 地址、密钥、代理地址、Bot 访问令牌、用户 ID、任务显示数量最大值。根据自己的实际情况填写,自由地区的 VPS 可以去掉代理地址配置。
{
"aria2-server": "ws://10.0.0.2:6800/jsonrpc",
"aria2-key": "P3TERX_2020",
"proxy": "http://127.0.0.1:7890",
"bot-key": "123456789:xyz",
"user-id": "123456",
"max-index": 10
}
TIPS: 如果你需要多用户支持,用户 ID 之间用
,
(半角逗号)隔开即可,就像这样:"user-id": "123,456,789"
- 把编写好的配置文件保存到
~/.tele-aria2-conf.json
(这个文件名称和路径随意,自己知道就行,后面的 Docker 运行命令中记得替换)
nano ~/.tele-aria2-conf.json
- 运行 Docker 容器
docker run -d \
--name tele-aria2 \
--restart unless-stopped \
--log-opt max-size=1m \
--network host \
-v ~/.tele-aria2-conf.json:/config.json \
p3terx/tele-aria2:0.2.2
- 发送
/start
给 Bot ,Bot 回复并弹出菜单即代表部署成果。
使用 Bot 控制 Aria2 下载
- 发送链接或者种子文件即可开始下载,下载完成会有通知。
- 如果配置好了自动上传,那么等待上传完成即可。
局限性
- 无法在 Bot 中直接查看上传进度,毕竟只是 Aria2 的前端
- 暂时一个 Bot 只能控制一个 Aria2 服务端
尾巴
tele-aria2 目前尚处于初级开发阶段,功能比较极简,不过 Aria2 绝大多数时间的使用场景是添加、暂停、删除任务。AriaNg 功能强大,但由于开发者为了保持操作逻辑的严谨性(添加任务前可修改默认参数),因此牺牲掉批量添加种子功能,而 tele-aria2 可以一次性发送多个种子来实现批量添加种子,一定程度上也弥补了 AriaNg 这个功能的缺失。所以说在日常使用场景中 tele-aria2 可以替代 AriaNg ,而在需要单独定制任务参数或者查看任务进度时使用 AriaNg ,二者相辅相成应该算是目前 Aria2 前端最佳解决方案。