config.js can setting sa path, and install w/ my repo in script.

This commit is contained in:
liaojack8 2020-07-06 09:58:43 +08:00
parent 3b94ccac7d
commit 1327616635
3 changed files with 283 additions and 280 deletions

View File

@ -1,24 +1,27 @@
// 单次请求多少毫秒未响应以后超时基准值若连续超时则下次调整为上次的2倍 // 单次请求多少毫秒未响应以后超时基准值若连续超时则下次调整为上次的2倍
const TIMEOUT_BASE = 7000 const TIMEOUT_BASE = 7000
// 最大超时设置比如某次请求第一次7s超时第二次14s第三次28s第四次56s第五次不是112s而是60s后续同理 // 最大超时设置比如某次请求第一次7s超时第二次14s第三次28s第四次56s第五次不是112s而是60s后续同理
const TIMEOUT_MAX = 60000 const TIMEOUT_MAX = 60000
const LOG_DELAY = 5000 // 日志输出时间间隔,单位毫秒 const LOG_DELAY = 5000 // 日志输出时间间隔,单位毫秒
const PAGE_SIZE = 1000 // 每次网络请求读取目录下的文件数数值越大越有可能超时不得超过1000 const PAGE_SIZE = 1000 // 每次网络请求读取目录下的文件数数值越大越有可能超时不得超过1000
const RETRY_LIMIT = 7 // 如果某次请求失败,允许其重试的最大次数 const RETRY_LIMIT = 7 // 如果某次请求失败,允许其重试的最大次数
const PARALLEL_LIMIT = 20 // 网络请求的并行数量,可根据网络环境调整 const PARALLEL_LIMIT = 20 // 网络请求的并行数量,可根据网络环境调整
const DEFAULT_TARGET = '' // 必填拷贝默认目的地ID如果不指定target则会复制到此处建议填写团队盘ID const DEFAULT_TARGET = '' // 必填拷贝默认目的地ID如果不指定target则会复制到此处建议填写团队盘ID
const AUTH = { // 如果您拥有service account的json授权文件可将其拷贝至 sa 目录中以代替 client_id/secret/refrest_token const AUTH = { // 如果您拥有service account的json授权文件可将其拷贝至 sa 目录中以代替 client_id/secret/refrest_token
client_id: 'your_client_id', client_id: 'your_client_id',
client_secret: 'your_client_secret', client_secret: 'your_client_secret',
refresh_token: 'your_refrest_token', refresh_token: 'your_refrest_token',
expires: 0, // 可以留空 expires: 0, // 可以留空
access_token: '', // 可以留空 access_token: '', // 可以留空
tg_token: 'bot_token', // 你的 telegram robot 的 token获取方法参见 https://core.telegram.org/bots#6-botfather 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只会执行这个列表里的用户所发送的指令 tg_whitelist: ['your_tg_username'] // 你的tg username(t.me/username)bot只会执行这个列表里的用户所发送的指令
} }
module.exports = { AUTH, PARALLEL_LIMIT, RETRY_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET } //-------------------MOD-------------------
const SA_PATH = '../sa' //sa路徑配置, 給定絕對路徑或是以src為當前路徑給定相對路徑
module.exports = { AUTH, PARALLEL_LIMIT, RETRY_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET, SA_PATH }

View File

@ -1,254 +1,254 @@
#!/bin/bash #!/bin/bash
echo echo
echo -e "\033[1;32m===== <<gdutils项目一件部署脚本要求及说明>> =====\033[0m" echo -e "\033[1;32m===== <<gdutils项目一件部署脚本要求及说明>> =====\033[0m"
echo -e "\033[1;32m---------------[ v2.1 by oneking ]---------------\033[0m" echo -e "\033[1;32m---------------[ v2.1 by oneking ]---------------\033[0m"
echo -e "\033[32m 01.\033[0m 本脚本是针对TG大神@viegg的gdutils项目一键部署脚本;" echo -e "\033[32m 01.\033[0m 本脚本是针对TG大神@viegg的gdutils项目一键部署脚本;"
echo -e "\033[32m 02.\033[0m 脚本包括“TD盘VPS上查询转存部署”和“Telegram机器人部署”两部分" echo -e "\033[32m 02.\033[0m 脚本包括“TD盘VPS上查询转存部署”和“Telegram机器人部署”两部分"
echo -e "\033[32m 03.\033[0m 本脚本适应CentOS/Debian/Ubuntu三种操作系统自动识别、自动选择对应分支一键安装部署" echo -e "\033[32m 03.\033[0m 本脚本适应CentOS/Debian/Ubuntu三种操作系统自动识别、自动选择对应分支一键安装部署"
echo -e "\033[32m 04.\033[0m 三步即可完成部署上传脚本到VPS → 设置脚本执行权限 → 运行" echo -e "\033[32m 04.\033[0m 三步即可完成部署上传脚本到VPS → 设置脚本执行权限 → 运行"
echo -e "\033[32m 05.\033[0m 准备工作一在TG上注册好机器人取得并记录下该机器人TOKEN" echo -e "\033[32m 05.\033[0m 准备工作一在TG上注册好机器人取得并记录下该机器人TOKEN"
echo -e "\033[32m 06.\033[0m 准备工作二拥有一个域名绑定到cloudflare解析到该机器人所在服务器IP" echo -e "\033[32m 06.\033[0m 准备工作二拥有一个域名绑定到cloudflare解析到该机器人所在服务器IP"
echo -e "\033[32m 07.\033[0m 准备工作三:向机器人@userinfobot获取个人TG账号ID并记录" echo -e "\033[32m 07.\033[0m 准备工作三:向机器人@userinfobot获取个人TG账号ID并记录"
echo -e "\033[32m 08.\033[0m 准备工作四注册好一个Google team drive加入sa并记录下该盘ID" echo -e "\033[32m 08.\033[0m 准备工作四注册好一个Google team drive加入sa并记录下该盘ID"
echo -e "\033[32m 09.\033[0m 经测试可用完美安装系统Centos 7/8 debian 9/10 ubuntu 16.04/18.04/19.10/20.04" echo -e "\033[32m 09.\033[0m 经测试可用完美安装系统Centos 7/8 debian 9/10 ubuntu 16.04/18.04/19.10/20.04"
echo -e "\033[32m 10.\033[0m 部署过程中有任何问题请把“错误截图”“部署VPS系统名称版本”信息发给TGonekings 或 vitaminor@gmail.com" echo -e "\033[32m 10.\033[0m 部署过程中有任何问题请把“错误截图”“部署VPS系统名称版本”信息发给TGonekings 或 vitaminor@gmail.com"
echo -e "\033[1;32m------------------------------------------------\033[0m" echo -e "\033[1;32m------------------------------------------------\033[0m"
read -s -n1 -p "★★★ 如已做好以上[5/6/7/8]准备或不需要安装Telegram机器人请按任意键开始部署如未做好准备请按“Ctrl+c”终止脚本 ★★★" read -s -n1 -p "★★★ 如已做好以上[5/6/7/8]准备或不需要安装Telegram机器人请按任意键开始部署如未做好准备请按“Ctrl+c”终止脚本 ★★★"
echo echo
echo -e "\033[1;32m------------------------------------------------\033[0m" echo -e "\033[1;32m------------------------------------------------\033[0m"
# 识别操作系统 # 识别操作系统
aNAME="$(uname -a)" aNAME="$(uname -a)"
bNAME="$(cat /proc/version)" bNAME="$(cat /proc/version)"
cNAME="$(lsb_release -a)" cNAME="$(lsb_release -a)"
if [ -f "/etc/redhat-release" ]; then if [ -f "/etc/redhat-release" ]; then
if [[ $(cat /etc/redhat-release) =~ "CentOS" ]]; then if [[ $(cat /etc/redhat-release) =~ "CentOS" ]]; then
os="CentOS" os="CentOS"
fi fi
elif [ "$aNAME"=~"Debian" -o "$bNAME"=~"Debian" -o "$cNAME"=~"Debian" ]; then elif [ "$aNAME"=~"Debian" -o "$bNAME"=~"Debian" -o "$cNAME"=~"Debian" ]; then
os="Debian" os="Debian"
elif [ "$aNAME"=~"Ubuntu" -o "$bNAME"=~"Ubuntu" -o "$cNAME"=~"Ubuntu" ]; then elif [ "$aNAME"=~"Ubuntu" -o "$bNAME"=~"Ubuntu" -o "$cNAME"=~"Ubuntu" ]; then
os="Debian" os="Debian"
elif [ "$aNAME"=~"CentOS" -o "$bNAME"=~"CentOS" -o "$cNAME"=~"CentOS" ]; then elif [ "$aNAME"=~"CentOS" -o "$bNAME"=~"CentOS" -o "$cNAME"=~"CentOS" ]; then
os="CentOS" os="CentOS"
elif [ "$aNAME"=~"Darwin" -o "$bNAME"=~"Darwin" -o "$cNAME"=~"Darwin" ]; then elif [ "$aNAME"=~"Darwin" -o "$bNAME"=~"Darwin" -o "$cNAME"=~"Darwin" ]; then
os="mac" os="mac"
else else
os="$bNAME" os="$bNAME"
fi fi
# 需要安装的软件工具及依赖 # 需要安装的软件工具及依赖
insofts=(epel-release update upgrade wget curl git unzip zip python3-distutils python3 python3-pip) insofts=(epel-release update upgrade wget curl git unzip zip python3-distutils python3 python3-pip)
#根据操作系统设置变量 #根据操作系统设置变量
if [[ "$os" = "Debian" ]]; then if [[ "$os" = "Debian" ]]; then
cmd_install="apt-get" #安装命令 cmd_install="apt-get" #安装命令
cmd_install_rely="build-essential" #c++编译环境 cmd_install_rely="build-essential" #c++编译环境
nodejs_curl="https://deb.nodesource.com/setup_10.x" #nodejs下载链接 nodejs_curl="https://deb.nodesource.com/setup_10.x" #nodejs下载链接
cmd_install_rpm_build="" #安装rpm-build cmd_install_rpm_build="" #安装rpm-build
nginx_conf="/etc/nginx/sites-enabled/" #nginx配置文件存放路径 nginx_conf="/etc/nginx/sites-enabled/" #nginx配置文件存放路径
rm_nginx_default="rm -f /etc/nginx/sites-enabled/default" #删除default rm_nginx_default="rm -f /etc/nginx/sites-enabled/default" #删除default
echo echo
echo -e "\033[1;32m★★★★★ 您的操作系统为Debian即将为你开始部署gdutils项目 ★★★★★\033[0m" echo -e "\033[1;32m★★★★★ 您的操作系统为Debian即将为你开始部署gdutils项目 ★★★★★\033[0m"
elif [[ "$os" = "Ubuntu" ]]; then elif [[ "$os" = "Ubuntu" ]]; then
cmd_install="sudo apt-get" cmd_install="sudo apt-get"
cmd_install_rely="build-essential" cmd_install_rely="build-essential"
nodejs_curl="https://deb.nodesource.com/setup_10.x" nodejs_curl="https://deb.nodesource.com/setup_10.x"
cmd_install_rpm_build="" cmd_install_rpm_build=""
nginx_conf="/etc/nginx/sites-enabled/" nginx_conf="/etc/nginx/sites-enabled/"
rm_nginx_default="rm -f /etc/nginx/sites-enabled/default" rm_nginx_default="rm -f /etc/nginx/sites-enabled/default"
echo echo
echo -e "\033[1;32m★★★★★ 您的操作系统为Ubuntu即将为你开始部署gdutils项目 ★★★★★\033[0m" echo -e "\033[1;32m★★★★★ 您的操作系统为Ubuntu即将为你开始部署gdutils项目 ★★★★★\033[0m"
elif [[ "$os" = "CentOS" ]]; then elif [[ "$os" = "CentOS" ]]; then
cmd_install="yum" cmd_install="yum"
cmd_install_rely="gcc-c++ make" cmd_install_rely="gcc-c++ make"
nodejs_curl="https://rpm.nodesource.com/setup_10.x" nodejs_curl="https://rpm.nodesource.com/setup_10.x"
cmd_install_rpm_build="yum install rpm-build -y" cmd_install_rpm_build="yum install rpm-build -y"
nginx_conf="/etc/nginx/conf.d/" nginx_conf="/etc/nginx/conf.d/"
rm_nginx_default="" rm_nginx_default=""
echo echo
echo -e "\033[1;32m★★★★★ 您的操作系统为Centos即将为你开始部署gdutils项目 ★★★★★\033[0m" echo -e "\033[1;32m★★★★★ 您的操作系统为Centos即将为你开始部署gdutils项目 ★★★★★\033[0m"
elif [[ "$os" = "mac" ]]; then elif [[ "$os" = "mac" ]]; then
echo echo
echo -e "\033[1;32m★★★★★ 您的操作系统为MacOS请在图形界面手动安装 ★★★★★\033[0m" echo -e "\033[1;32m★★★★★ 您的操作系统为MacOS请在图形界面手动安装 ★★★★★\033[0m"
exit exit
echo echo
echo echo
else else
echo echo
echo -e "\033[1;32m unknow os $OS, exit! \033[0m" echo -e "\033[1;32m unknow os $OS, exit! \033[0m"
exit exit
echo echo
echo echo
fi fi
echo echo
echo -e "\033[1;32m===== <<升级系统/更新软件/安装工具/安装依赖>> =====\033[0m" echo -e "\033[1;32m===== <<升级系统/更新软件/安装工具/安装依赖>> =====\033[0m"
echo echo
#安装which和sudo #安装which和sudo
if [[ "$(which which)" == "" ]]; then if [[ "$(which which)" == "" ]]; then
echo -e "\033[1;32m“which”开始安装......\033[0m" echo -e "\033[1;32m“which”开始安装......\033[0m"
$cmd_install install which -y $cmd_install install which -y
echo -e "\033[1;32m------------------------------------------------\033[0m" echo -e "\033[1;32m------------------------------------------------\033[0m"
elif [[ "$(which sudo)" == "" ]]; then elif [[ "$(which sudo)" == "" ]]; then
echo -e "\033[1;32m“sudo”开始安装......\033[0m" echo -e "\033[1;32m“sudo”开始安装......\033[0m"
$cmd_install install sudo -y $cmd_install install sudo -y
echo -e "\033[1;32m------------------------------------------------\033[0m" echo -e "\033[1;32m------------------------------------------------\033[0m"
fi fi
#安装工具和依赖 #安装工具和依赖
for ((aloop = 0; aloop < ${#insofts[@]}; aloop++)); do for ((aloop = 0; aloop < ${#insofts[@]}; aloop++)); do
if [ ${insofts[$aloop]} = "update" -o ${insofts[$aloop]} = "upgrade" ]; then if [ ${insofts[$aloop]} = "update" -o ${insofts[$aloop]} = "upgrade" ]; then
echo -e "\033[1;32m“${insofts[$aloop]}”开始安装......\033[0m" echo -e "\033[1;32m“${insofts[$aloop]}”开始安装......\033[0m"
$cmd_install ${insofts[$aloop]} -y $cmd_install ${insofts[$aloop]} -y
echo -e "\033[1;32m------------------------------------------------\033[0m" echo -e "\033[1;32m------------------------------------------------\033[0m"
else else
echo -e "\033[1;32m“${insofts[$aloop]}”开始安装......\033[0m" echo -e "\033[1;32m“${insofts[$aloop]}”开始安装......\033[0m"
$cmd_install install ${insofts[$aloop]} -y $cmd_install install ${insofts[$aloop]} -y
echo -e "\033[1;32m------------------------------------------------\033[0m" echo -e "\033[1;32m------------------------------------------------\033[0m"
fi fi
done done
echo echo
echo -e "\033[1;32m===== <<安装gdutils依赖-nodejs和npm/安装配置gdutils>> =====\033[0m" echo -e "\033[1;32m===== <<安装gdutils依赖-nodejs和npm/安装配置gdutils>> =====\033[0m"
echo echo
$cmd_install install $cmd_install_rely -y $cmd_install install $cmd_install_rely -y
curl -sL $nodejs_curl | bash - curl -sL $nodejs_curl | bash -
$cmd_install install nodejs -y $cmd_install install nodejs -y
$cmd_install_rpm_build $cmd_install_rpm_build
git clone https://github.com/iwestlin/gd-utils && cd gd-utils git clone https://github.com/liaojack8/gd-utils-cht && cd gd-utils-cht
npm config set unsafe-perm=true npm config set unsafe-perm=true
npm i npm i
echo echo
echo -e "\033[1;32m★★★ 恭喜您!gdutils统计转存系统已经正确安装完成请上传sa到“./gd-utils/sa/”目录下完成最后的配置 ★★★\033[0m" echo -e "\033[1;32m★★★ 恭喜您!gdutils统计转存系统已经正确安装完成请上传sa到“./gd-utils/sa/”目录下完成最后的配置 ★★★\033[0m"
echo echo
################################################################################################# #################################################################################################
echo -e "\033[1;32m----------------------------------------------------------\033[0m" echo -e "\033[1;32m----------------------------------------------------------\033[0m"
read -s -n1 -p "★★★ 下面将部署Telegram机器人请确保准备所需条件已准备好按任意键开始部署机器人如未做好准备请按“Ctrl+c”终止部署机器人 ★★★" read -s -n1 -p "★★★ 下面将部署Telegram机器人请确保准备所需条件已准备好按任意键开始部署机器人如未做好准备请按“Ctrl+c”终止部署机器人 ★★★"
echo echo
echo -e "\033[1;32m----------------------------------------------------------\033[0m" echo -e "\033[1;32m----------------------------------------------------------\033[0m"
echo echo
echo -e "\033[1;32m ===== <<开始部署gdutils查询转存TG机器人>> ===== \033[0m" echo -e "\033[1;32m ===== <<开始部署gdutils查询转存TG机器人>> ===== \033[0m"
echo echo
#输入“机器人token/TG账号ID/域名/转存目的盘ID” #输入“机器人token/TG账号ID/域名/转存目的盘ID”
read -p """请输入机器人token并回车 read -p """请输入机器人token并回车
Your Bot Token =>:""" YOUR_BOT_TOKEN Your Bot Token =>:""" YOUR_BOT_TOKEN
#判断token是否输入正确 #判断token是否输入正确
while [[ "${#YOUR_BOT_TOKEN}" != 46 ]]; do while [[ "${#YOUR_BOT_TOKEN}" != 46 ]]; do
echo -e "\033[1;32m★★★ 机器人TOKEN输入不正确请重新输入或按“Ctrl+C”结束安装 ★★★\033[0m" echo -e "\033[1;32m★★★ 机器人TOKEN输入不正确请重新输入或按“Ctrl+C”结束安装 ★★★\033[0m"
read -p """请输入机器人token并回车 read -p """请输入机器人token并回车
Your Bot Token =>:""" YOUR_BOT_TOKEN Your Bot Token =>:""" YOUR_BOT_TOKEN
done done
read -p """请输入你的域名(在cloudflare上解析到你机器人所在VPS的域名格式bot.abc.com)并回车 read -p """请输入你的域名(在cloudflare上解析到你机器人所在VPS的域名格式bot.abc.com)并回车
Your Domain Name =>:""" YOUR_DOMAIN_NAME Your Domain Name =>:""" YOUR_DOMAIN_NAME
#判断域名是否正确 #判断域名是否正确
while [[ "$YOUR_DOMAIN_NAME" =~ "http" ]]; do while [[ "$YOUR_DOMAIN_NAME" =~ "http" ]]; do
echo -e "\033[1;32m★★★ “Your Domain Name”输入错误应该输入你在cloudflare上解析的域名且不包含“http”请重新输入或按“Ctrl+C”结束安装 ★★★\033[0m" echo -e "\033[1;32m★★★ “Your Domain Name”输入错误应该输入你在cloudflare上解析的域名且不包含“http”请重新输入或按“Ctrl+C”结束安装 ★★★\033[0m"
read -p """请输入你的域名(在cloudflare上解析到你机器人所在VPS的域名格式bot.abc.com)并回车 read -p """请输入你的域名(在cloudflare上解析到你机器人所在VPS的域名格式bot.abc.com)并回车
Your Domain Name =>:""" YOUR_DOMAIN_NAME Your Domain Name =>:""" YOUR_DOMAIN_NAME
done done
read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车 read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车
Your Telegram ID =>:""" YOUR_TELEGRAM_ID Your Telegram ID =>:""" YOUR_TELEGRAM_ID
#判断telegram ID是否正确(通过判断是不是纯数字) #判断telegram ID是否正确(通过判断是不是纯数字)
until [[ $YOUR_TELEGRAM_ID =~ ^-?[0-9]+$ ]]; do until [[ $YOUR_TELEGRAM_ID =~ ^-?[0-9]+$ ]]; do
echo -e "\033[1;32m★★★ 您的TG账号ID输入不正确请重新输入或按“Ctrl+C”结束安装 ★★★\033[0m" echo -e "\033[1;32m★★★ 您的TG账号ID输入不正确请重新输入或按“Ctrl+C”结束安装 ★★★\033[0m"
read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车 read -p """请输入使用机器人的telegram账号ID(获取ID机器人@userinfobot)并回车
Your Telegram ID =>:""" YOUR_TELEGRAM_ID Your Telegram ID =>:""" YOUR_TELEGRAM_ID
done done
read -p """请输入转存默认目的地团队盘ID(不指定转存目的地默认改地址脚本强制要求输入团队盘ID)并回车 read -p """请输入转存默认目的地团队盘ID(不指定转存目的地默认改地址脚本强制要求输入团队盘ID)并回车
Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID
#判断google team drive ID是否正确团队盘ID长度19位 #判断google team drive ID是否正确团队盘ID长度19位
while [[ "${#YOUR_GOOGLE_TEAM_DRIVE_ID}" != 19 ]]; do while [[ "${#YOUR_GOOGLE_TEAM_DRIVE_ID}" != 19 ]]; do
echo -e "\033[1;32m★★★ 您的Google team drive ID输入不正确请重新输入或按“Ctrl+C”结束安装 ★★★\033[0m" echo -e "\033[1;32m★★★ 您的Google team drive ID输入不正确请重新输入或按“Ctrl+C”结束安装 ★★★\033[0m"
read -p """请输入转存默认目的地ID(不指定转存目的地默认该地址脚本强制要求输入团队盘ID)并回车 read -p """请输入转存默认目的地ID(不指定转存目的地默认该地址脚本强制要求输入团队盘ID)并回车
Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID Your Google Team Drive ID =>:""" YOUR_GOOGLE_TEAM_DRIVE_ID
done done
cd ~ && cd ~ &&
sed -i "s/bot_token/$YOUR_BOT_TOKEN/g" ./gd-utils/config.js && sed -i "s/bot_token/$YOUR_BOT_TOKEN/g" ./gd-utils/config.js &&
sed -i "s/your_tg_username/$YOUR_TELEGRAM_ID/g" ./gd-utils/config.js && sed -i "s/your_tg_username/$YOUR_TELEGRAM_ID/g" ./gd-utils/config.js &&
sed -i "s/DEFAULT_TARGET = ''/DEFAULT_TARGET = '$YOUR_GOOGLE_TEAM_DRIVE_ID'/g" ./gd-utils/config.js sed -i "s/DEFAULT_TARGET = ''/DEFAULT_TARGET = '$YOUR_GOOGLE_TEAM_DRIVE_ID'/g" ./gd-utils/config.js
echo -e "\033[1;32m----------------------------------------------------------\033[0m" echo -e "\033[1;32m----------------------------------------------------------\033[0m"
echo -e "\033[1;32m“进程守护程序pm2”开始安装......\033[0m" echo -e "\033[1;32m“进程守护程序pm2”开始安装......\033[0m"
cd /root/gd-utils && cd /root/gd-utils &&
npm i pm2 -g && pm2 l npm i pm2 -g && pm2 l
echo -e "\033[1;32m启动守护进程......\033[0m" echo -e "\033[1;32m启动守护进程......\033[0m"
pm2 start server.js --node-args="--max-old-space-size=4096" pm2 start server.js --node-args="--max-old-space-size=4096"
echo -e "\033[1;32m----------------------------------------------------------\033[0m" echo -e "\033[1;32m----------------------------------------------------------\033[0m"
echo -e "\033[1;32m“nginx”开始安装......\033[0m" echo -e "\033[1;32m“nginx”开始安装......\033[0m"
cd ~ && cd ~ &&
$cmd_install install nginx -y $cmd_install install nginx -y
echo echo
echo -e "\033[1;32m===== <<配置nginx服务>> ===== \033[0m" echo -e "\033[1;32m===== <<配置nginx服务>> ===== \033[0m"
echo echo
echo -e "\033[1;32m“nginx”起一个web服务......\033[0m" echo -e "\033[1;32m“nginx”起一个web服务......\033[0m"
cd $nginx_conf cd $nginx_conf
echo "server { echo "server {
listen 80; listen 80;
server_name ecbot.nctu.me; server_name ecbot.nctu.me;
return 301 https://$host$request_uri; return 301 https://$host$request_uri;
} }
server { server {
listen 443 ssl; listen 443 ssl;
ssl on; ssl on;
ssl_certificate /etc/ssl/certificate.crt; ssl_certificate /etc/ssl/certificate.crt;
ssl_certificate_key /etc/ssl/private.key; ssl_certificate_key /etc/ssl/private.key;
server_name $YOUR_DOMAIN_NAME; server_name $YOUR_DOMAIN_NAME;
location / { location / {
proxy_pass http://127.0.0.1:23333/; proxy_pass http://127.0.0.1:23333/;
} }
}" >${nginx_conf}gdutilsbot.conf && }" >${nginx_conf}gdutilsbot.conf &&
$rm_nginx_default $rm_nginx_default
ls && ls &&
nginx -t && nginx -t &&
nginx -c /etc/nginx/nginx.conf && nginx -c /etc/nginx/nginx.conf &&
nginx -s reload && nginx -s reload &&
netstat -tulpen netstat -tulpen
echo -e "\033[1;32m----------------------------------------------------------\033[0m" echo -e "\033[1;32m----------------------------------------------------------\033[0m"
echo -e "\033[1;32m“检查网站是否部署成功”......\033[0m" echo -e "\033[1;32m“检查网站是否部署成功”......\033[0m"
curl $YOUR_DOMAIN_NAME/api/gdurl/count\?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg curl $YOUR_DOMAIN_NAME/api/gdurl/count\?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg
echo echo
echo -e "\033[1;32m设置Webhook服务......\033[0m" echo -e "\033[1;32m设置Webhook服务......\033[0m"
print_webhook=$(curl -F "url=https://$YOUR_DOMAIN_NAME/api/gdurl/tgbot" "https://api.telegram.org/bot$YOUR_BOT_TOKEN/setWebhook") print_webhook=$(curl -F "url=https://$YOUR_DOMAIN_NAME/api/gdurl/tgbot" "https://api.telegram.org/bot$YOUR_BOT_TOKEN/setWebhook")
echo echo
# 判断反向代理是否部署成功 # 判断反向代理是否部署成功
if [[ $print_webhook =~ "true" ]]; then if [[ $print_webhook =~ "true" ]]; then
echo -e "\033[1;32m★★★ 恭喜你GoogleDrive查询转存机器人部署成功请回到TG界面给bot发送个“/help”获取使用帮助 ★★★\033[0m" echo -e "\033[1;32m★★★ 恭喜你GoogleDrive查询转存机器人部署成功请回到TG界面给bot发送个“/help”获取使用帮助 ★★★\033[0m"
else else
echo -e "\033[32m★★★ 很遗憾!机器人设置失败,请返回检查网站是否部署成功,并重复本安装过程 ★★★\033[0m", exit! echo -e "\033[32m★★★ 很遗憾!机器人设置失败,请返回检查网站是否部署成功,并重复本安装过程 ★★★\033[0m", exit!
fi fi
nginx -t && nginx -s reload nginx -t && nginx -s reload
echo echo
echo echo
cd ~ cd ~
rm -f gdutilsinstall.sh rm -f gdutilsinstall.sh
###########################gdutils功能建议################################## ###########################gdutils功能建议##################################
# 本部分是对gdutils项目的建议因为我主要用的是查询功能所以以下建议只涉及查询功能 # 本部分是对gdutils项目的建议因为我主要用的是查询功能所以以下建议只涉及查询功能
# 1-把以下参数放入配置文件设置sa存放路径 # 1-把以下参数放入配置文件设置sa存放路径
# 2-改sa“随机”使用为“顺序”分组使用 # 2-改sa“随机”使用为“顺序”分组使用
# 3-增加输出模式,可以用命令行后带参数选择,具体模式建议: # 3-增加输出模式,可以用命令行后带参数选择,具体模式建议:
# ①按一级或者二级文件夹显示数量大小 # ①按一级或者二级文件夹显示数量大小
# ②可以一次性统计多个磁盘并且输出单个磁盘文件数和大小以及几个磁盘总和 # ②可以一次性统计多个磁盘并且输出单个磁盘文件数和大小以及几个磁盘总和
# ③获取id对应的文件夹名或者磁盘明保存数据库给个命令能够查询历史记录汇总或者指定汇总 # ③获取id对应的文件夹名或者磁盘明保存数据库给个命令能够查询历史记录汇总或者指定汇总
# 4-查询过程中输出方式不要每次都输出一次,可以固定+数字变化 # 4-查询过程中输出方式不要每次都输出一次,可以固定+数字变化
# 5-命令参数可加在ID前或后如果非要固定一种的话就加在ID之前 # 5-命令参数可加在ID前或后如果非要固定一种的话就加在ID之前
# 6-命令行也改为默认sa模式 # 6-命令行也改为默认sa模式
############################################################################ ############################################################################

View File

@ -8,7 +8,7 @@ const HttpsProxyAgent = require('https-proxy-agent')
const { GoogleToken } = require('gtoken') const { GoogleToken } = require('gtoken')
const handle_exit = require('signal-exit') const handle_exit = require('signal-exit')
const { AUTH, RETRY_LIMIT, PARALLEL_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET } = require('../config') const { AUTH, RETRY_LIMIT, PARALLEL_LIMIT, TIMEOUT_BASE, TIMEOUT_MAX, LOG_DELAY, PAGE_SIZE, DEFAULT_TARGET, SA_PATH } = require('../config')
const { db } = require('../db') const { db } = require('../db')
const { make_table, make_tg_table, make_html, summary } = require('./summary') const { make_table, make_tg_table, make_html, summary } = require('./summary')
@ -18,7 +18,7 @@ const { https_proxy } = process.env
const axins = axios.create(https_proxy ? { httpsAgent: new HttpsProxyAgent(https_proxy) } : {}) const axins = axios.create(https_proxy ? { httpsAgent: new HttpsProxyAgent(https_proxy) } : {})
const SA_BATCH_SIZE = 1000 const SA_BATCH_SIZE = 1000
const SA_FILES = fs.readdirSync(path.join(__dirname, '../sa')).filter(v => v.endsWith('.json')) const SA_FILES = fs.readdirSync(path.join(__dirname, SA_PATH)).filter(v => v.endsWith('.json'))
SA_FILES.flag = 0 SA_FILES.flag = 0
let SA_TOKENS = get_sa_batch() let SA_TOKENS = get_sa_batch()