工具简介
一个可以快捷转存GD文件的机器人,以前本站曾经介绍过可以离线下载种子到GD的机器人(由于权限问题,很多人搭建都不太成功),这个可以有一键脚本等等,并且搭建简单,如果你经常搞机器人的话,我想很容易上手,可以实现快捷转存等等功能推荐大家上车试试.
项目地址:https://github.com/iwestlin/gd-utils
魔改版(gd-utils MOD+繁體中文化):https://github.com/liaojack8/gd-utils-cht
一键脚本:https://github.com/vitaminx/gd-utils
支持功能
-
统计任意(您拥有相关权限的,下同,不再赘述)目录的文件信息,且支持以各种形式(html, table, json)导出。 支持中断恢复,且统计过的目录(包括其所有子孙目录)信息会记录在本地数据库文件中(gdurl.sqlite) 请在本项目目录下命令行输入
./count -h
查看使用帮助 -
拷贝任意目录所有文件到您指定目录,同样支持中断恢复。 支持根据文件大小过滤,可输入
./copy -h
查看使用帮助 -
对任意目录进行去重,删除同一目录下的md5值相同的文件(只保留一个),删除空目录。 命令行输入
./dedupe -h
查看使用帮助 -
在 config.js 里完成相关配置后,可以将本项目部署在(可正常访问谷歌服务的)服务器上,提供 http api 文件统计接口
-
支持 telegram bot,配置完成后,上述功能均可通过 bot 进行操作
安装前提
域名一个:建议使用自己的域名采用cloudfare,并解析到你的VPS上去,一定要把proxy打开,这样才可以保证你的SSL生效,当然你可以本地配置,目前一键脚本已经修复了这个错误,可以看看本站的这篇文章:传送门
TG机器人一个:在Telegram上注册好机器人并取得并记录下该机器人TOKEN,这里有教程:传送门
VPS一枚:支持liunx系统,并且最好是国外的,国内的应该无法正常使用,VPS选择可以看看本站这里的推荐:传送门
需要准备4个东西如下:
机器人TOKEN:这个在Telegram里面找“@BotFather”注册即可获得 使用机器人的Telegram用户名:在Telegram里面直接查看 web服务名:这是个是很重要的识别标志,请设置为你的域名(格式:abc.34513.com) 域名网址全称:你在cloudflare上解析到VPS的域名网址全称(格式:https://abc.34513.com)
安装教程
有2种方式支持搭建,一种是脚本搭建,如果失败的话可以参考官方手动配置,本人比较懒,直接有脚本上车了,说实话这个脚本有点臃肿,是利用git部署的,所以centos6之类以下的系统不建议使用,建议使用全新系统搞哈
在有网站web环境下要熟悉配置nginx之类的简单配置,环境复杂的强烈建议手动git安装
如果你的VPS上没有安装过BBR之类的话,建议先升级下系统
yum -y update
安装rclone记录参数
此步骤非必须的,如果有service account的json授权文件,可将其拷贝至 sa 目录中以代替 client_id/secret/refrest_token安装rclone,也可以不装如果你已经配置了相关参数的话
curl https://rclone.org/install.sh | sudo bash
配置rclone并记住相关的参数,过程可以看这里,需要获得几个参数如下:
"client_id": "202264815644.apps.googleusercontent.com",//我这里用的就是rclone默认的app,官方建议自己申请,我比较懒就不搞了 "client_secret": "X4Z3ca8xfWDb1Voo-F9a7ZxJ",//我这里用的就是rclone默认的app "refresh_token": "1//06-4TkIqhx5kZCgYIARAAGAYSNwF-L9IrNGcjWRWA8JYWW33jCqb0L7sbxcVrR-8rh0Nl7Q_jVk0xzzxWcr0kzhYVcddPL8", // 授权 token
把以上三个参数记录下来后需要到config.js中手动配置
const AUTH = { // 如果您拥有service account的json授权文件,可将其拷贝至 sa 目录中以代替 client_id/secret/refrest_token client_id: 'your_client_id', client_secret: 'your_client_secret', refresh_token: 'your_refrest_token', expires: 0, // 可以留空 access_token: '', // 可以留空 tg_token: 'bot_token', // 你的 telegram robot 的 token,获取方法参见 https://core.telegram.org/bots#6-botfather tg_whitelist: ['your_tg_username'] // 你的tg username(t.me/username),bot只会执行这个列表里的用户所发送的指令 }
安装netstat
安装netstat,我估计可能就我的系统没装了吧,我踩坑之一
yum -y install net-tools
打开端口
先把端口开一下
firewall-cmd --zone=public --add-port=25/tcp --permanent firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=23333/tcp --permanent firewall-cmd --zone=public --add-port=323/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload
安装执行
这里还是要强烈推荐手动配置安装,脚本虽然方便,但是写这个脚本的作者也太装逼了,给我感觉低调的大佬写的东西才比较靠谱,不过为小白使用这里介绍的还是脚本安装
下载安装执行脚本
bash -c "$(curl -fsSL https://raw.githubusercontent.com/iwestlin/gd-utils/master/gdutilsinstall.sh)"
之后填入你的域名和机器人token,这里需要注意的是你的用户名不是昵称获得方式如下
#打开TG,查找用户@userinfobot @swjsky Id: 1148692654 //注意这里才是你的userID,大部分的TG机器人都是只认这个 First: 玄机 Last: 兔 Lang: zh-hans
上传SA账号
上传你的SA账号到sa目录下,执行脚本检查一下账号的可用性,之后基本完事了,今天不想写了,改天给更新一下
使用方法
打开你的注册的机器人,输入以下命令
#直接输入链接地址,自动解析,可以复制转存等,例如https://drive.google.com/drive/folders/10AirRnRWIRkzLUCMoLNOyXLC4XcBE6eU #获取帮助 /help #查询gd-id信息,返回sourceID的文件统计信息, sourceID可以是google drive分享网址本身,也可以是分享ID。如果命令最后加上 -u,则无视之前的记录强制从线上获取,适合一段时候后才更新完毕的分享链接。 /count shareID [-u] #将sourceID的文件复制到targetID里(会新建一个文件夹),若不填targetID,则会复制到默认位置(在config.js里设置)。如果命令最后加上 -u,则无视本地缓存强制从线上获取源文件夹信息。返回拷贝任务的taskID /copy sourceID targetID [-u] | #返回对应任务的进度信息,若不填则返回所有正在运行的任务进度,若填 all 则返回所有任务列表 /task taskID
示意图
BUG更新
– 由于最近google drive api的userRateLimitExceeded的错误(以前这种错误只会在SA用完750G才会出现)越来越频繁,我只好把剔除SA的条件从“连续2次”遇到这种报错消息改成了连续7次……
当然这个值也可以自定义,只需要在config.js中导出一个EXCEED_LIMIT的变量,具体方法请参考 readme【专家设置】一节
– 另外为了用户体验还隐去了频繁出现的userRateLimitExceeded报错信息,同时将重置SA(也就是重新启用被剔除的SA)改成了每2小时执行一次(原来是12小时)
> 更新方法:命令行在 gd-utils 目录下,执行 git pull 拉取最新代码,如果你使用了 pm2 守护进程,执行pm2 reload server刷新生效。
大佬能修复一下吗?[安装前提]哪里的[传送门]一个都点不了额
稍后修复