一个可以实现谷歌云盘批量转存|文件统计|TG-BOT|的工具Google Drive百宝箱

工具简介

一个可以快捷转存GD文件的机器人,以前本站曾经介绍过可以离线下载种子到GD的机器人(由于权限问题,很多人搭建都不太成功),这个可以有一键脚本等等,并且搭建简单,如果你经常搞机器人的话,我想很容易上手,可以实现快捷转存等等功能推荐大家上车试试.

项目地址:https://github.com/iwestlin/gd-utils

魔改版(gd-utils MOD+繁體中文化):https://github.com/liaojack8/gd-utils-cht

一键脚本:https://github.com/vitaminx/gd-utils

《一个可以实现谷歌云盘批量转存|文件统计|TG-BOT|的工具Google Drive百宝箱》

支持功能

  • 统计任意(您拥有相关权限的,下同,不再赘述)目录的文件信息,且支持以各种形式(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

示意图

《一个可以实现谷歌云盘批量转存|文件统计|TG-BOT|的工具Google Drive百宝箱》

《一个可以实现谷歌云盘批量转存|文件统计|TG-BOT|的工具Google Drive百宝箱》

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刷新生效。

点赞
  1. as513385说道:

    大佬能修复一下吗?[安装前提]哪里的[传送门]一个都点不了额

    1. 山涧小石说道:

      稍后修复

发表评论