Skip to content

gd-utils: 一个非常好用且飞快的telegram bot来做Google Drive转存

大佬的github在这 https://github.com/iwestlin/gd-utils

安装

###!!! 安装node.js v12 - 不能用v14,不然会出错
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y gcc g++ make nodejs

# 下载/进入
cd /data/ && git clone https://github.com/iwestlin/gd-utils 
ln -s /data/gd-utils ~/gd-utils && cd ~/gd-utils

# 安装
npm i

配置

团队盘 – 拷贝glone/rclone的SA文件夹

之前搞过如何生成SA文件夹

# 自己修改对应的源目录
cp ~/AutoRclone/accounts/* ./sa/

个人盘

只需要 rclone.conf中的对应的 client_id, client_secret 和 refresh_token 这三个变量,将其分别填入本项目下的 config.js 中。

我就不弄个人盘了

TG Bot配置

参考官方指南: https://core.telegram.org/bots#6-botfather

打开 https://t.me/botfather

把token放到 config.js相应的位置当中。

上图的这个DEFAULT_TARGET就是转存的目标目录ID,也可以设置.

到此位置,基本上配置完成。

启动

# 安装进程守护程序pm2
npm i pm2 -g

# 如果你的gd-util服务器和宝塔/nginx的服务器不是同一个,必须用0.0.0.0启动,不然无法从外网访问,只能用127.0.0.1
vi server.js
# const PORT = 23333
# // app.listen(PORT, '127.0.0.1', console.log('http://127.0.0.1:' + PORT))
# app.listen(PORT, '0.0.0.0', console.log('http://127.0.0.1:' + PORT))

# 代码运行后会在服务器上监听23333端口
pm2 start server.js

# 将当前的pm2进程保存 - 未来重启之后可以自动启动
pm2 save

# 查看当前的进程
pm2 list

# 去宝塔/nginx做好反代

# 本地测试
curl 'https://gdutil.ck.mk/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg'
# 如果返回一个表,就是成功了

一些控制指令

# 重启
pm2 restart server.js

# 开启自启
pm2 startup
# 取消开启重启
pm2 unstartup systemd

把TG bot连上

# change to your own website & token
curl -F "url=https://gdutil.ck.mk/api/gdurl/tgbot" 'https://api.telegram.org/bot之前得到的BotToken/setWebhook'

Bot测试

如果出问题

# 通常是进程被干掉了
lsof -i:23333
# 会发现没有进程
# 重启一下就行了
pm2 start /data/gd-utils/server.js

大功告成。

确认sa文件的权限

# 后面那个是folder id - 就是检查这几百个sa.js文件有没有对这个folder有访问权限
./validate-sa.js 1WnDafO8TXIK5w1n9kNPO_sZCm7FV3aLD

有趣的一个失误

我发现重启之后PM2并不运行,出现这样的。

tail -50 /var/log/syslog
# 反馈是"node"找不到

解决方案也很搞,发现把 /etc/systemd/system/pm2-root.service 中PATH行中的”Applications/VMWare OVF Tool:”的这部分删了就行了 – 这是我从本地机考过去之后不小心留在Path中的一段残留物。

删了,重启就好了。

Leave a Reply

Your email address will not be published.