最近看到了一个有意思的Telegram Bot项目,可以使用aria2下载文件并将其上传到Google云端硬盘。平时自己也有使用到aria2+rclone自动上传到Google Drive,这个通过Bot的方式还没尝试过,就着手试着搭建了一个,这里分享搭建过程,至于成品Bot想想自己渣渣的服务器还是不方便分享。

    项目地址:https://github.com/out386/aria-telegram-mirror-bot

    需要准备:

    1.服务器一台(硬盘不能太小,文件需要下载到本地再上传|内存不能太小,作者介绍运行tsc至少1G,可以尝试添加swap)

    2.Google Drive一个。最好是无限容量的,可以使用团队盘(注意:团队盘不支持分享文件夹,当下载的不是单文件,bot返回的文件夹链接只有团队盘成员才能使用,可以尝试/mirrorTar命令,会返回打包的链接)

    3.Telegram

    本文将使用ubuntu系统搭建,按道理nodejs项目全平台支持,需要在其他平台搭建请自行研究。

安装:

1.安装前准备:

1)创建一个Telegram Bot(参考

打开BotFather创建一个新的Bot,保存好生成的API。

2)创建一个Telegram群组,获取id

将刚建的bot添加到群组。

将这个bot也添加到群组@get_id_bot,获取自己id和群组id(注意:当将群组公开或聊天记录设置为可见后,群组id会改变。),获取了id可以把这个bot踢了。

3)安装aria2。

ubuntu可以直接apt安装,其他可以看这里

apt install aria2

4)准备Google Drive文件夹ID

如创建的文件夹为 https://drive.google.com/drive/folders/1uAKQ7E5YZPKDODR47z1wIF0ZUDQcrIZh

1uAKQ7E5YZPKDODR47z1wIF0ZUDQcrIZh即文件夹ID

5)安装nodejs

ubuntu可以直接apt安装,其他平台看这里

curl -sL https://deb.nodesource.com/setup_10.x | bash - && \apt-get install -y nodejs

2.安装

1)下载源码

git clone https://github.com/out386/aria-telegram-mirror-botcd aria-telegram-mirror-bot

2)npm安装

 npm install npm install -g typescript

3)创建配置文件

cp src/.constants.js.example src/.constants.jscp aria.sh.example aria.sh

4)修改aria.sh脚本

vim aria.sh #ARIA_RPC_SECRET 这个是aria2远程连接的密码#MAX_CONCURRENT_DOWNLOADS 这个是同时下载的任务数# 建议加个--bt-tracker=## tracker在这里获取https://sleele.gitee.io/aria2-trackers/

5)设置Bot参数

vim src/.constants.js #主要需要修改以下参数:更多介绍https://github.com/out386/aria-telegram-mirror-bot#Constants-description  module.exports = Object.freeze({  TOKEN: '10852945xxxxxxxxxIFhOeGA',        //BotFather新建Bot时保存好生成的API  ARIA_SECRET: 'xxxx',        //上一步设置的aria2远程连接的密码  ARIA_DOWNLOAD_LOCATION: '/home/aria2',        //aria2的下载目录,自行设置  ARIA_DOWNLOAD_LOCATION_ROOT: '/',        //aria2的下载子目录,建议默认  ARIA_FILTERED_DOMAINS: ['yts', 'YTS', 'cruzing.xyz'],        //禁止下载包含这些关键字的链接  ARIA_FILTERED_FILENAMES: ['YIFY']        // 文件名或根目录含有这些关键字禁止下载  ARIA_PORT: 6800,        // aria2的远程端口,和上一步的一样  GDRIVE_PARENT_DIR_ID: 'xxxxx',        // Google Drive文件夹ID  SUDO_USERS: [258xxxx74, 345],        // Telegram 用户ID.这些用户可以在任何对话使用bot  AUTHORIZED_CHATS: [-1001xxxx91788],        // Telegram群组ID. 群组内用户可以使用bot  STATUS_UPDATE_INTERVAL_MS: 12000,        //bot刷新时间,注意设置过快会被Telegram限制。  DRIVE_FILE_PRIVATE: {        //上传返回的共享链接是否私有,不建议开    ENABLED: false,    EMAILS: ['someMail@gmail.com', 'someOtherMail@gmail.com']  },  DOWNLOAD_NOTIFY_TARGET: {        // 这个还没研究,外部通知之类的,其实可以用AriaNg查看。    enabled: false,   // Set this to true to use the notify functionality    host: 'hostname.domain',    port: 80,    path: '/botNotify'  },  COMMANDS_USE_BOT_NAME: {    ENABLED: false,        // 发送指令时必需@bot    NAME: "@aria2_gd_bot"        // 你的bot name  },  IS_TEAM_DRIVE: false        //是否团队盘});

6)编译项目(不要留了这一步,编译时可能CPU/内存高占用)

tsc

7)设置Google Drive授权

打开:https://console.developers.google.com/apis/credentials

(没有项目的,先创建一个项目)

点击OAuth 同意屏幕——创建——输入一个应用名称保存

点击凭据——创建——其他——下载——重名为client_secret.json

上传到项目根目录

8)启用 Drive API:

打开:https://console.developers.google.com/apis/library/drive.googleapis.com

启用 Drive API

9)启动aria2

bash aria.sh

10)启动bot

npm start

11)打开Telegram

发送 

/mirror https://raw.githubusercontent.com/out386/aria-telegram-mirror-bot/master/README.md

成功下载后上传前需要授权,打开运行日志中的网址授权

Telegram能返回GoogleDrive链接说明bot运行起来了。

3.其他说明

1)后台运行

linux可以使用 nohup

nohup npm start &

或screen

apt install screen -yscreen -S bot npm start##先按ctrl+a再按ctrl+z退出

还可以使用nodejs的pm2守护程序

npm i -g pm2pm2 start npm --name "{app name}" -- start

2)更新配置文件

修改.constants.js新增加管理员或认证的群组后需要重新运行tsc编译。

更新程序git pull https://github.com/out386/aria-telegram-mirror-bot 之后运行 tsc

3)Bot设置指令

设置指令后,对话框自动显示指令

打开BotFather输入/mybot——选择你的Bot——Edit Bot编辑Bot——Edit Commands——输入(注意好像不能大写)

mirror - mirror <url>mirrortar - mirrorTar <url> mirrorstatus - mirrorstatuscancelmirror - cancelmirrorcancelall - cancelall ##这个容易误操作,不建议添加list - <filename> getfolder - getfolder

Bot其他设置按需设置一下。

4)建议:Google Drive文件夹设置为共享文件夹

这样getfolder返回的链接就可以查看。

或搭建gdindex方便查看。

#https://blog.jialezi.net/?post=156

Last modification:June 5, 2020
如果觉得我的文章对你有用,请随意赞赏