搭建|一个使用Aria2下载并自动上传文件到OneDrive的Telegram Bot。
之前介绍过能上传GoogleDrive的Telegram Bot(链接),这次这个能上传OneDrive(目前还支持GoogleDrive/天翼云/Mega),个人觉得一大亮点是根据硬盘大小分段下载、可选择bt文件和shell_bot功能(控制服务器文件)。另外Go语言编写,多平台支持,开箱即用。
项目地址:https://github.com/gaowanliang/DownloadBot
简介:一个可以控制你的Aria2服务器、控制服务器文件,同时可以上传到OneDrive的Telegram Bot。
意义:这个项目主要就是利用吃灰小盘vps进行离线下载,对于大bt文件进行根据硬盘大小分段下载,每次都下载一部分,然后上传网盘,删除再下载其他部分,直到下载完所有文件。
同时,通过机器人协议通信,方便在无法进行内网穿透的机器上进行使用,而且简化了平时使用下载程序的操作,提高了便利性。对于链接,直接向Bot发送消息就可以直接识别并下载,可以真正删除下载文件夹里的文件,是AriaNG等web面板无法做到的,作为管理下载的工具,及时通知下载完成都是非常的方便的。可以移动文件,对于通过rclone挂载硬盘的用户可以直接通过本程序进行复制粘贴等操作,无需打开ssh连接VPS进行cp操作,也非常的方便。
实现:注意:本项目仍处于测试阶段,提交的Release仅供测试,现在下载后并不保证您的稳定使用,也不能保证下面所勾选的内容已经被实现。当真正可以正常使用的时候,我会提交 V1.0 版本(V1.0 版本不会实现下面全部功能,但是已经可以正常稳定的使用)
下载方式:
1、Aria2 控制
持久化监控
断线重连
2、计划支持qb,CT,多服务器控制等功能
机器人协议支持:
1、Telegram Bot
2、后续支持更多,QQ/钉钉
功能:
1、删除文件
2、移动文件
3、下载 HTTP/FTP 链接
4、下载 Magnet 链接
5、下载 BitTorrent 文件内的文件
6、智能 BitTorrent/Magnet 下载方式
只选择下载最大的文件
根据文件大小智能选择文件,不选择小文件
7、下载完成后,向 OneDrive 上传文件
8、文件树输出系统
特点:
1、完全基于触摸,更容易使用,使用这个机器人基本不需要命令。
2、实时通知,使用Aria2的Websocket协议进行通信。
3、更好的配置文件支持。
开始
1、通过 @BotFather 创建您自己的bot并使用。
2、下载本程序(https://github.com/gaowanliang/DownloadBot/releases),Go语言程序多平台支持,下载对应平台即可运行。
3、在想要执行本程序的根目录配置config.json。
4、运行可执行文件。(需要先安装aria2,推荐一键脚本https://github.com/P3TERX/aria2.sh)
配置文件示例
{
"aria2-server": "ws://127.0.0.1:5800/jsonrpc",
"aria2-key": "xxxxxxxx",
"bot-key": "123456789:xxxxxxxxx",
"user-id": "123456789",
"max-index": 10,
"sign": "Main Aria2",
"language": "zh-CN",
"downloadFolder": "C:/aria2/Aria2Data",
"moveFolder":"C:/aria2/GoogleDrive"
}
各项对应解释
aria2-server:aria2服务器地址,默认使用websocket连接。如果要使用websocket连接aria2,请务必设置aria2.conf内的enable-rpc=true 。如果不是必须,请尽量设置本地的aria2地址,以便于最大化的使用本程序
aria2-key:aria2.conf中rpc-secret的值
bot-key:Telegram Bot的标识
user-id:管理员的ID
max-index:下载信息最大显示数量,建议10条(以后会改进)
sign:此机器人的标识,如果需要多个服务器连接同一个机器人,通过这一项可以确定具体是哪一台服务器
language:机器人输出的语言
downloadFolder:Aria2下载文件保存的地址。如果不使用,请输入""
moveFolder: 要将下载文件夹的文件移动到的文件夹。如果不使用,请输入""
目前支持的语言及语言标签
英语:en
简体中文:zh-CN
繁体中文:zh-TW
当您在config.json中填写上面语言的标签的时候,程序会自动下载语言包
关于user-id
如果您不知道您的 user-id ,可以将此项留空,在运行这个机器人后输入/myid,此机器人就会返回您的user-id.
下面是博主搭建过程:
作者说了目前项目还处于非稳定版,只处于基本能用的状态,所以使用过程中很多功能未完善,可能又有一些bug或其他状况。
1)创建Telegram Bot(t.me/BotFather)
2)服务器安装安装Aria2
#安装基础组件 apt install wget curl ca-certificates #下载脚本 wget -N git.io/aria2.sh && chmod +x aria2.sh #运行脚本 ./aria2.sh
3)下载程序(附自行编译方法)
#在releases下载对应平台的可运行文件(https://github.com/gaowanliang/DownloadBotng/DownloadBot/releases/) wget https://github.com/gaowanliang/DownloadBotng/DownloadBot/releases/download/v0.0.4/DownloadBot_0.0.4_Linux_x86_64.tar.gz #解压后当前目录下有一个DownloadBot文件 tar xvzf DownloadBot_0.0.4_Linux_x86_64.tar.gz ------------------------------------------------------- #附:服务器安装Golang和编译最新版程序方法 #安装Golang14.13(linux下可用的一键脚本) curl -SL https://gitee.com/skiy/golang-install/raw/master/install.sh | bash /dev/stdin -v 1.13.4 #下载DownloadBot源码编译 git clone cd DownloadBot go build #编译完成后,当前目录下有一个DownloadBot文件
4)编辑config.json配置文件,运行程序(建议使用英文版,第一次使用中文时,上传按钮都没出来)
#编辑config.json配置文件,uesr-id未知的可以去 t.me/myidbot 获取 nano config.json ## moveFolder参数好像不生效,下载了都在downloadFolder里面,上传时也是把整个文件夹上传 #运行程序 ./DownloadBot
4)上传文件夹
注意,目前支持4种存储系统,好像目前只能手动上传,只能把整个下载目录上传目前
授权时有些账号会遇到此应用可能存在风险,需要全局管理员授权的情况。
授权后会可能出现程序自动退出,重新启动即可
首次点击上传我也遇到程序自动退出的情况,多试几次就正常运行了
文件重复上传会被重命名后面加1,再上传
个人感受,还不是一个完善的程序,不过能上传多个不同的储存系统的确不错,期待程序之后更加完善更加强大。
之前文章:一个能下载并自动上传文件到Google Drive的Telegram Bot -- https://blog.jialezi.net/?post=156
匿名
匿名
2021/12/12 02:52:31 Bad Request: can't parse entities: Can't find end of the entity starting at byte offset 7
panic: Bad Request: can't parse entities: Can't find end of the entity starting at byte offset 7
goroutine 12 [running]:
log.Panic(0xc00038b998, 0x1, 0x1)
/usr/lib/golang/src/log/log.go:351 +0xae
main.dropErr(...)
/root/DownloadBot/main.go:14
main.tgBot(0xc000028060, 0x2e, 0xc0003fc640)
/root/DownloadBot/Telegram.go:1089 +0xc05
created by main.main
/root/DownloadBot/main.go:34 +0x9f
匿名
匿名aa