增加tg bot测试,修改增删任务通知

This commit is contained in:
whyour 2021-05-07 23:10:09 +08:00
parent 99d8a8dd23
commit 14bd680202
8 changed files with 181 additions and 174 deletions

View File

@ -1,5 +1,5 @@
## Version: v2.0.0 ## Version: v2.0.0
## Date: 2021-04-07 ## Date: 2021-05-07
## Update Content: 新一版青龙。 ## Update Content: 新一版青龙。
## 上面版本号中如果第2位数字有变化那么代表增加了新的参数如果只有第3位数字有变化仅代表更新了注释没有增加新的参数可更新可不更新 ## 上面版本号中如果第2位数字有变化那么代表增加了新的参数如果只有第3位数字有变化仅代表更新了注释没有增加新的参数可更新可不更新
@ -19,8 +19,8 @@ CommandTimeoutTime="1h"
## 在crontab.list中除掉每小时上述时间启动的任务外其他任务在你定义了 RandomDelay 的情况下,一律启用随机延迟,但如果你给某些任务添加了 "now" 或者 "conc",那么这些任务也将无视随机延迟直接启动 ## 在crontab.list中除掉每小时上述时间启动的任务外其他任务在你定义了 RandomDelay 的情况下,一律启用随机延迟,但如果你给某些任务添加了 "now" 或者 "conc",那么这些任务也将无视随机延迟直接启动
RandomDelay="300" RandomDelay="300"
## 如果你自己会写shell脚本并且希望在每次运行 ql update 命令时,额外运行你的 shell 脚本,请赋值为 "true" ## 如果你自己会写shell脚本并且希望在每次运行 ql update 命令时,额外运行你的 shell 脚本,请赋值为 "true"默认为true
EnableExtraShell="" EnableExtraShell="true"
## 自动按顺序进行账号间互助(选填) 设置为 true 时将直接导入code最新日志来进行互助 ## 自动按顺序进行账号间互助(选填) 设置为 true 时将直接导入code最新日志来进行互助
AutoHelpOther="" AutoHelpOther=""
@ -33,7 +33,7 @@ AutoHelpOther=""
HelpType="" HelpType=""
## 需组合的环境变量列表env_name需要和var_name一一对应 ## 需组合的环境变量列表env_name需要和var_name一一对应,如何有新活动按照格式添加(不懂勿动)
env_name=( env_name=(
JD_COOKIE JD_COOKIE
FRUITSHARECODES FRUITSHARECODES

View File

@ -4,21 +4,6 @@ get_token() {
token=$(cat $file_auth_user | jq -r .token) token=$(cat $file_auth_user | jq -r .token)
} }
get_json_value() {
local json=$1
local key=$2
if [[ -z "$3" ]]; then
local num=1
else
local num=$3
fi
local value=$(echo "${json}" | awk -F"[,:}]" '{for(i=1;i<=NF;i++){if($i~/'${key}'\042/){print $(i+1)}}}' | tr -d '"' | sed -n ${num}p)
echo ${value}
}
add_cron_api() { add_cron_api() {
local currentTimeStamp=$(date +%s) local currentTimeStamp=$(date +%s)
if [ $# -eq 1 ]; then if [ $# -eq 1 ]; then
@ -44,10 +29,11 @@ add_cron_api() {
--compressed --compressed
) )
code=$(echo $api | jq -r .code) code=$(echo $api | jq -r .code)
message=$(echo $api | jq -r .message)
if [[ $code == 200 ]]; then if [[ $code == 200 ]]; then
echo -e "$name 添加成功" return "$name 添加成功"
else else
echo -e "$name 添加失败" return "$name 添加失败(${message})"
fi fi
} }
@ -79,10 +65,11 @@ update_cron_api() {
--compressed --compressed
) )
code=$(echo $api | jq -r .code) code=$(echo $api | jq -r .code)
message=$(echo $api | jq -r .message)
if [[ $code == 200 ]]; then if [[ $code == 200 ]]; then
echo -e "$name 添加成功" return "$name 更新成功"
else else
echo -e "$name 添加失败" return "$name 更新失败(${message})"
fi fi
} }
@ -101,10 +88,11 @@ del_cron_api() {
-H "Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7" -H "Accept-Language: en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7"
) )
code=$(echo $api | jq -r .code) code=$(echo $api | jq -r .code)
message=$(echo $api | jq -r .message)
if [[ $code == 200 ]]; then if [[ $code == 200 ]]; then
echo -e "$name 删除成功" return "$name 删除成功"
else else
echo -e "$name 删除失败" return "$name 删除失败(${message})"
fi fi
} }

19
shell/bot.sh Normal file
View File

@ -0,0 +1,19 @@
#!/usr/bin/env bash
## 导入通用变量与函数
dir_shell=/ql/shell
. $dir_shell/share.sh
echo -e "安装bot依赖...\n"
apk --no-cache add -f zlib-dev gcc jpeg-dev python3-dev musl-dev freetype-dev
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install telethon python-socks[asyncio] pillow qrcode requests prettytable
echo -e "下载bot所需文件...\n"
repo_path="${dir_repo}/SuMaiKaDe_jddockerbot"
git clone -b master https://ghproxy.com/https://github.com/SuMaiKaDe/jddockerbot.git $repo_path
cp -rf "$repo_path/jbot" $dir_root
cp -f "$repo_path/config/bot.json" "$dir_root/config"
cd $dir_root
nohup python3 -m jbot &

View File

@ -5,9 +5,9 @@ dir_shell=/ql/shell
. $dir_shell/share.sh . $dir_shell/share.sh
## 生成pt_pin清单 ## 生成pt_pin清单
gen_pt_pin_array () { gen_pt_pin_array() {
local tmp1 tmp2 i pt_pin_temp local tmp1 tmp2 i pt_pin_temp
for ((user_num=1; user_num<=$user_sum; user_num++)); do for ((user_num = 1; user_num <= $user_sum; user_num++)); do
tmp1=Cookie$user_num tmp1=Cookie$user_num
tmp2=${!tmp1} tmp2=${!tmp1}
i=$(($user_num - 1)) i=$(($user_num - 1))
@ -17,7 +17,7 @@ gen_pt_pin_array () {
} }
## 导出互助码的通用程序,$1去掉后缀的脚本名称$2config.sh中的后缀$3活动中文名称 ## 导出互助码的通用程序,$1去掉后缀的脚本名称$2config.sh中的后缀$3活动中文名称
export_codes_sub () { export_codes_sub() {
local task_name=$1 local task_name=$1
local config_name=$2 local config_name=$2
local chinese_name=$3 local chinese_name=$3
@ -38,10 +38,10 @@ export_codes_sub () {
## 输出My系列变量 ## 输出My系列变量
if [[ ${#code[*]} -gt 0 ]]; then if [[ ${#code[*]} -gt 0 ]]; then
for ((m=0; m<${#pt_pin[*]}; m++)); do for ((m = 0; m < ${#pt_pin[*]}; m++)); do
tmp_my_code="" tmp_my_code=""
j=$((m + 1)) j=$((m + 1))
for ((n=0; n<${#code[*]}; n++)); do for ((n = 0; n < ${#code[*]}; n++)); do
if [[ ${pt_pin[m]} == ${pt_pin_in_log[n]} ]]; then if [[ ${pt_pin[m]} == ${pt_pin_in_log[n]} ]]; then
tmp_my_code=${code[n]} tmp_my_code=${code[n]}
break break
@ -59,22 +59,22 @@ export_codes_sub () {
case $HelpType in case $HelpType in
0) ## 全部一致 0) ## 全部一致
tmp_for_other="" tmp_for_other=""
for ((m=0; m<${#pt_pin[*]}; m++)); do for ((m = 0; m < ${#pt_pin[*]}; m++)); do
j=$((m + 1)) j=$((m + 1))
tmp_for_other="$tmp_for_other@\${$config_name_my$j}" tmp_for_other="$tmp_for_other@\${$config_name_my$j}"
done done
echo "${config_name_for_other}1=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" echo "${config_name_for_other}1=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|"
for ((m=1; m<${#pt_pin[*]}; m++)); do for ((m = 1; m < ${#pt_pin[*]}; m++)); do
j=$((m + 1)) j=$((m + 1))
echo "$config_name_for_other$j=\"\${${config_name_for_other}1}\"" echo "$config_name_for_other$j=\"\${${config_name_for_other}1}\""
done done
;; ;;
1) ## 均等助力 1) ## 均等助力
for ((m=0; m<${#pt_pin[*]}; m++)); do for ((m = 0; m < ${#pt_pin[*]}; m++)); do
tmp_for_other="" tmp_for_other=""
j=$((m + 1)) j=$((m + 1))
for ((n=$m; n<$(($user_sum + $m)); n++)); do for ((n = $m; n < $(($user_sum + $m)); n++)); do
[[ $m -eq $n ]] && continue [[ $m -eq $n ]] && continue
if [[ $((n + 1)) -le $user_sum ]]; then if [[ $((n + 1)) -le $user_sum ]]; then
k=$((n + 1)) k=$((n + 1))
@ -88,7 +88,7 @@ export_codes_sub () {
;; ;;
2) ## 本套脚本内账号间随机顺序助力 2) ## 本套脚本内账号间随机顺序助力
for ((m=0; m<${#pt_pin[*]}; m++)); do for ((m = 0; m < ${#pt_pin[*]}; m++)); do
tmp_for_other="" tmp_for_other=""
random_num_list=$(seq $user_sum | sort -R) random_num_list=$(seq $user_sum | sort -R)
j=$((m + 1)) j=$((m + 1))
@ -101,10 +101,10 @@ export_codes_sub () {
;; ;;
*) ## 按编号优先 *) ## 按编号优先
for ((m=0; m<${#pt_pin[*]}; m++)); do for ((m = 0; m < ${#pt_pin[*]}; m++)); do
tmp_for_other="" tmp_for_other=""
j=$((m + 1)) j=$((m + 1))
for ((n=0; n<${#pt_pin[*]}; n++)); do for ((n = 0; n < ${#pt_pin[*]}; n++)); do
[[ $m -eq $n ]] && continue [[ $m -eq $n ]] && continue
k=$((n + 1)) k=$((n + 1))
tmp_for_other="$tmp_for_other@\${$config_name_my$k}" tmp_for_other="$tmp_for_other@\${$config_name_my$k}"
@ -120,7 +120,7 @@ export_codes_sub () {
} }
## 汇总输出 ## 汇总输出
export_all_codes () { export_all_codes() {
gen_pt_pin_array gen_pt_pin_array
echo -e "\n# 从日志提取互助码编号和配置文件中Cookie编号完全对应如果为空就是所有日志中都没有。\n\n# 即使某个MyXxx变量未赋值也可以将其变量名填在ForOtherXxx中jtask脚本会自动过滤空值。\n" echo -e "\n# 从日志提取互助码编号和配置文件中Cookie编号完全对应如果为空就是所有日志中都没有。\n\n# 即使某个MyXxx变量未赋值也可以将其变量名填在ForOtherXxx中jtask脚本会自动过滤空值。\n"
echo -n "# 你选择的互助码模板为:" echo -n "# 你选择的互助码模板为:"
@ -138,7 +138,7 @@ export_all_codes () {
echo "按账号编号优先。" echo "按账号编号优先。"
;; ;;
esac esac
for ((i=0; i<${#name_js[*]}; i++)); do for ((i = 0; i < ${#name_js[*]}; i++)); do
echo -e "\n## ${name_chinese[i]}" echo -e "\n## ${name_chinese[i]}"
export_codes_sub "${name_js[i]}" "${name_config[i]}" "${name_chinese[i]}" export_codes_sub "${name_js[i]}" "${name_config[i]}" "${name_chinese[i]}"
done done

View File

@ -7,7 +7,7 @@ dir_shell=/ql/shell
days=$1 days=$1
## 删除运行js脚本的旧日志 ## 删除运行js脚本的旧日志
remove_js_log () { remove_js_log() {
local log_full_path_list=$(ls -l $dir_log/*/*.log | awk '{print $9}') local log_full_path_list=$(ls -l $dir_log/*/*.log | awk '{print $9}')
local diff_time local diff_time
for log in $log_full_path_list; do for log in $log_full_path_list; do
@ -22,7 +22,7 @@ remove_js_log () {
} }
## 删除空文件夹 ## 删除空文件夹
remove_empty_dir () { remove_empty_dir() {
cd $dir_log cd $dir_log
for dir in $(ls); do for dir in $(ls); do
if [ -d $dir ] && [[ -z $(ls $dir) ]]; then if [ -d $dir ] && [[ -z $(ls $dir) ]]; then

View File

@ -49,7 +49,7 @@ original_name=(
) )
## 导入配置文件 ## 导入配置文件
import_config () { import_config() {
[ -f $file_config_user ] && . $file_config_user [ -f $file_config_user ] && . $file_config_user
user_sum=0 user_sum=0
for line in $(cat $file_cookie); do for line in $(cat $file_cookie); do
@ -59,7 +59,7 @@ import_config () {
} }
## 创建目录,$1目录的绝对路径 ## 创建目录,$1目录的绝对路径
make_dir () { make_dir() {
local dir=$1 local dir=$1
if [[ ! -d $dir ]]; then if [[ ! -d $dir ]]; then
mkdir -p $dir mkdir -p $dir
@ -67,7 +67,7 @@ make_dir () {
} }
## 检测termux ## 检测termux
detect_termux () { detect_termux() {
if [[ ${ANDROID_RUNTIME_ROOT}${ANDROID_ROOT} ]] || [[ $PATH == *com.termux* ]]; then if [[ ${ANDROID_RUNTIME_ROOT}${ANDROID_ROOT} ]] || [[ $PATH == *com.termux* ]]; then
is_termux=1 is_termux=1
else else
@ -76,18 +76,18 @@ detect_termux () {
} }
## 检测macos ## 检测macos
detect_macos () { detect_macos() {
[[ $(uname -s) == Darwin ]] && is_macos=1 || is_macos=0 [[ $(uname -s) == Darwin ]] && is_macos=1 || is_macos=0
} }
## 生成随机数,$1用来求余的数字 ## 生成随机数,$1用来求余的数字
gen_random_num () { gen_random_num() {
local divi=$1 local divi=$1
echo $((${RANDOM} % $divi)) echo $((${RANDOM} % $divi))
} }
## 创建软连接的子函数,$1软连接文件路径$2要连接的对象 ## 创建软连接的子函数,$1软连接文件路径$2要连接的对象
link_shell_sub () { link_shell_sub() {
local link_path="$1" local link_path="$1"
local original_path="$2" local original_path="$2"
if [ ! -L $link_path ] || [[ $(readlink -f $link_path) != $original_path ]]; then if [ ! -L $link_path ] || [[ $(readlink -f $link_path) != $original_path ]]; then
@ -97,7 +97,7 @@ link_shell_sub () {
} }
## 创建软连接 ## 创建软连接
link_shell () { link_shell() {
if [[ $is_termux -eq 1 ]]; then if [[ $is_termux -eq 1 ]]; then
local path="/data/data/com.termux/files/usr/bin/" local path="/data/data/com.termux/files/usr/bin/"
elif [[ $PATH == */usr/local/bin* ]] && [ -d /usr/local/bin ]; then elif [[ $PATH == */usr/local/bin* ]] && [ -d /usr/local/bin ]; then
@ -107,14 +107,14 @@ link_shell () {
echo -e "脚本功能受限,请自行添加命令的软连接...\n" echo -e "脚本功能受限,请自行添加命令的软连接...\n"
fi fi
if [[ $path ]]; then if [[ $path ]]; then
for ((i=0; i<${#link_name[*]}; i++)); do for ((i = 0; i < ${#link_name[*]}; i++)); do
link_shell_sub "$path${link_name[i]}" "$dir_shell/${original_name[i]}" link_shell_sub "$path${link_name[i]}" "$dir_shell/${original_name[i]}"
done done
fi fi
} }
## 定义各命令 ## 定义各命令
define_cmd () { define_cmd() {
local cmd_prefix cmd_suffix local cmd_prefix cmd_suffix
if type task >/dev/null 2>&1; then if type task >/dev/null 2>&1; then
cmd_suffix="" cmd_suffix=""
@ -131,13 +131,13 @@ define_cmd () {
cmd_prefix="bash $dir_shell/" cmd_prefix="bash $dir_shell/"
fi fi
fi fi
for ((i=0; i<${#link_name[*]}; i++)); do for ((i = 0; i < ${#link_name[*]}; i++)); do
export cmd_${link_name[i]}="${cmd_prefix}${link_name[i]}${cmd_suffix}" export cmd_${link_name[i]}="${cmd_prefix}${link_name[i]}${cmd_suffix}"
done done
} }
## 修复配置文件 ## 修复配置文件
fix_config () { fix_config() {
make_dir $dir_config make_dir $dir_config
make_dir $dir_log make_dir $dir_log
make_dir $dir_db make_dir $dir_db

View File

@ -5,11 +5,11 @@ dir_shell=/ql/shell
. $dir_shell/share.sh . $dir_shell/share.sh
## 组合Cookie和互助码子程序$1要组合的内容 ## 组合Cookie和互助码子程序$1要组合的内容
combine_sub () { combine_sub() {
local what_combine=$1 local what_combine=$1
local combined_all="" local combined_all=""
local tmp1 tmp2 local tmp1 tmp2
for ((i=1; i<=$user_sum; i++)); do for ((i = 1; i <= $user_sum; i++)); do
local tmp1=$what_combine$i local tmp1=$what_combine$i
local tmp2=${!tmp1} local tmp2=${!tmp1}
combined_all="$combined_all&$tmp2" combined_all="$combined_all&$tmp2"
@ -18,23 +18,23 @@ combine_sub () {
} }
## 正常依次运行时组合所有账号的Cookie与互助码 ## 正常依次运行时组合所有账号的Cookie与互助码
combine_all () { combine_all() {
for ((i=0; i<${#env_name[*]}; i++)); do for ((i = 0; i < ${#env_name[*]}; i++)); do
export ${env_name[i]}=$(combine_sub ${var_name[i]}) export ${env_name[i]}=$(combine_sub ${var_name[i]})
done done
} }
## 并发运行时直接申明每个账号的Cookie与互助码$1用户Cookie编号 ## 并发运行时直接申明每个账号的Cookie与互助码$1用户Cookie编号
combine_one () { combine_one() {
local user_num=$1 local user_num=$1
for ((i=0; i<${#env_name[*]}; i++)); do for ((i = 0; i < ${#env_name[*]}; i++)); do
local tmp=${var_name[i]}$user_num local tmp=${var_name[i]}$user_num
export ${env_name[i]}=${!tmp} export ${env_name[i]}=${!tmp}
done done
} }
## 选择python3还是node ## 选择python3还是node
define_program () { define_program() {
local p1=$1 local p1=$1
if [[ $p1 == *.js ]]; then if [[ $p1 == *.js ]]; then
which_program="node" which_program="node"
@ -45,7 +45,7 @@ define_program () {
fi fi
} }
random_delay () { random_delay() {
local random_delay_max=$RandomDelay local random_delay_max=$RandomDelay
if [[ $random_delay_max ]] && [[ $random_delay_max -gt 0 ]]; then if [[ $random_delay_max ]] && [[ $random_delay_max -gt 0 ]]; then
local current_min=$(date "+%-M") local current_min=$(date "+%-M")
@ -58,7 +58,7 @@ random_delay () {
} }
## scripts目录下所有可运行脚本数组 ## scripts目录下所有可运行脚本数组
gen_array_scripts () { gen_array_scripts() {
local dir_current=$(pwd) local dir_current=$(pwd)
local i="-1" local i="-1"
cd $dir_scripts cd $dir_scripts
@ -74,7 +74,7 @@ gen_array_scripts () {
} }
## 使用说明 ## 使用说明
usage () { usage() {
define_cmd define_cmd
gen_array_scripts gen_array_scripts
echo -e "task命令运行本程序自动添加进crontab的脚本需要输入脚本的绝对路径或去掉 “$dir_scripts/” 目录后的相对路径(定时任务中请写作相对路径),用法为:" echo -e "task命令运行本程序自动添加进crontab的脚本需要输入脚本的绝对路径或去掉 “$dir_scripts/” 目录后的相对路径(定时任务中请写作相对路径),用法为:"
@ -83,7 +83,7 @@ usage () {
echo -e "3.$cmd_task <file_name> conc # 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日志,直接记录在日志文件中" echo -e "3.$cmd_task <file_name> conc # 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日志,直接记录在日志文件中"
if [[ ${#array_scripts[*]} -gt 0 ]]; then if [[ ${#array_scripts[*]} -gt 0 ]]; then
echo -e "\n当前有以下脚本可以运行:" echo -e "\n当前有以下脚本可以运行:"
for ((i=0; i<${#array_scripts[*]}; i++)); do for ((i = 0; i < ${#array_scripts[*]}; i++)); do
echo -e "$(($i + 1)). ${array_scripts_name[i]}${array_scripts[i]}" echo -e "$(($i + 1)). ${array_scripts_name[i]}${array_scripts[i]}"
done done
else else
@ -92,13 +92,13 @@ usage () {
} }
## run nohup$1文件名不含路径带后缀 ## run nohup$1文件名不含路径带后缀
run_nohup () { run_nohup() {
local file_name=$1 local file_name=$1
nohup node $file_name &>$log_path & nohup node $file_name &>$log_path &
} }
## 正常运行单个脚本,$1传入参数 ## 正常运行单个脚本,$1传入参数
run_normal () { run_normal() {
local p1=$1 local p1=$1
cd $dir_scripts cd $dir_scripts
define_program "$p1" define_program "$p1"
@ -121,7 +121,7 @@ run_normal () {
## 并发执行因为是并发所以日志只能直接记录在日志文件中日志文件以Cookie编号结尾前台执行并发跑时不会输出日志 ## 并发执行因为是并发所以日志只能直接记录在日志文件中日志文件以Cookie编号结尾前台执行并发跑时不会输出日志
## 并发执行时,设定的 RandomDelay 不会生效,即所有任务立即执行 ## 并发执行时,设定的 RandomDelay 不会生效,即所有任务立即执行
run_concurrent () { run_concurrent() {
local p1=$1 local p1=$1
cd $dir_scripts cd $dir_scripts
define_program "$p1" define_program "$p1"
@ -129,15 +129,24 @@ run_concurrent () {
make_dir $log_dir make_dir $log_dir
log_time=$(date "+%Y-%m-%d-%H-%M-%S.%N") log_time=$(date "+%Y-%m-%d-%H-%M-%S.%N")
echo -e "\n各账号间已经在后台开始并发执行前台不输入日志日志直接写入文件中。\n" echo -e "\n各账号间已经在后台开始并发执行前台不输入日志日志直接写入文件中。\n"
for ((user_num=1; user_num<=$user_sum; user_num++)); do for ((user_num = 1; user_num <= $user_sum; user_num++)); do
combine_one $user_num combine_one $user_num
log_path="$log_dir/${log_time}_${user_num}.log" log_path="$log_dir/${log_time}_${user_num}.log"
timeout $CommandTimeoutTime $which_program $p1 &>$log_path & timeout $CommandTimeoutTime $which_program $p1 &>$log_path &
done done
} }
## 运行其他命令
run_else() {
local log_time=$(date "+%Y-%m-%d-%H-%M-%S")
local log_dir="$dir_log/$1"
local log_path="$log_dir/$log_time.log"
make_dir "$log_dir"
timeout $CommandTimeoutTime "$@" 2>&1 | tee $log_path
}
## 命令检测 ## 命令检测
main () { main() {
case $# in case $# in
0) 0)
echo echo
@ -155,14 +164,12 @@ main () {
run_concurrent $1 $2 run_concurrent $1 $2
;; ;;
*) *)
echo -e "\n命令输入错误...\n" run_else "$@"
usage
;; ;;
esac esac
;; ;;
*) *)
echo -e "\n命令参数过多...\n" run_else "$@"
usage
;; ;;
esac esac
} }

View File

@ -108,21 +108,15 @@ output_list_add_drop() {
del_cron() { del_cron() {
local list_drop=$1 local list_drop=$1
local author=$2 local author=$2
local detail detail2 local detail=""
detail=$(cat $list_drop)
echo -e "开始尝试自动删除失效的定时任务...\n" echo -e "开始尝试自动删除失效的定时任务...\n"
for cron in $detail; do for cron in $(cat $list_drop); do
local id=$(cat $list_crontab_user | grep -E "$cmd_task $cron$" | perl -pe "s|.*ID=(.*) $cmd_task $cron$|\1|") local id=$(cat $list_crontab_user | grep -E "$cmd_task $cron$" | perl -pe "s|.*ID=(.*) $cmd_task $cron$|\1|")
del_cron_api "$id" result=$(del_cron_api "$id")
rm -f "$dir_scripts/${cron}" rm -f "$dir_scripts/${cron}"
detail="${detail}\n${result}"
done done
exit_status=$? notify "删除失效任务通知" "$detail2"
detail2=$(echo $detail | perl -pe "s| |\\\n|g")
if [[ $exit_status -eq 0 ]]; then
notify "删除失效任务通知" "成功删除以下失效的定时任务:\n$detail2"
else
notify "删除任务失败通知" "尝试自动删除以下定时任务出错,请手动删除:\n$detail2"
fi
} }
## 自动增加定时任务需要1.AutoAddCron 设置为 true2.正常更新js脚本没有报错3.存在新任务4.crontab.list存在并且不为空 ## 自动增加定时任务需要1.AutoAddCron 设置为 true2.正常更新js脚本没有报错3.存在新任务4.crontab.list存在并且不为空
@ -131,9 +125,9 @@ add_cron() {
local list_add=$1 local list_add=$1
local author=$2 local author=$2
echo -e "开始尝试自动添加定时任务...\n" echo -e "开始尝试自动添加定时任务...\n"
local detail=$(cat $list_add) local detail=""
cd $dir_scripts cd $dir_scripts
for file in $detail; do for file in $(cat $list_add); do
local file_name=${file/${author}\_/} local file_name=${file/${author}\_/}
if [ -f $file ]; then if [ -f $file ]; then
cron_line=$( cron_line=$(
@ -148,16 +142,11 @@ add_cron() {
cron_name=$(grep "new Env" $file | awk -F "'|\"" '{print $2}' | head -1) cron_name=$(grep "new Env" $file | awk -F "'|\"" '{print $2}' | head -1)
[[ -z $cron_name ]] && cron_name="$file_name" [[ -z $cron_name ]] && cron_name="$file_name"
[[ -z $cron_line ]] && cron_line="0 6 * * *" [[ -z $cron_line ]] && cron_line="0 6 * * *"
add_cron_api "$cron_line:$cmd_task $file:$cron_name" result=$(add_cron_api "$cron_line:$cmd_task $file:$cron_name")
detail="${detail}\n${result}"
fi fi
done done
exit_status=$? notify "新增任务通知" "$detail"
local detail2=$(echo $detail | perl -pe "s| |\\\n|g")
if [[ $exit_status -eq 0 ]]; then
notify "新增任务通知" "成功添加新的定时任务:\n$detail2"
else
notify "新任务添加失败通知" "尝试自动添加以下新的定时任务出错,请手动添加:\n$detail2"
fi
} }
## 更新仓库 ## 更新仓库
@ -207,10 +196,10 @@ update_raw() {
cp -f $raw_file_name $dir_scripts/${filename} cp -f $raw_file_name $dir_scripts/${filename}
cron_line=$( cron_line=$(
perl -ne "{ perl -ne "{
print if /.*([\d\*]*[\*-\/,\d]*[\d\*] ){4}[\d\*]*[\*-\/,\d]*[\d\*]( |,|\").*$raw_file_name/ print if /.*([\d\*]*[\*-\/,\d]*[\d\*] ){4,5}[\d\*]*[\*-\/,\d]*[\d\*]( |,|\").*$raw_file_name/
}" $raw_file_name | }" $raw_file_name |
perl -pe "{ perl -pe "{
s|[^\d\*]*(([\d\*]*[\*-\/,\d]*[\d\*] ){4}[\d\*]*[\*-\/,\d]*[\d\*])( \|,\|\").*/?$raw_file_name.*|\1|g; s|[^\d\*]*(([\d\*]*[\*-\/,\d]*[\d\*] ){4,5}[\d\*]*[\*-\/,\d]*[\d\*])( \|,\|\").*/?$raw_file_name.*|\1|g;
s| | |g s| | |g
}" | sort -u | head -1 }" | sort -u | head -1
) )
@ -249,6 +238,7 @@ usage() {
echo -e "4. $cmd_update repo <repourl> <path> <blacklist> <dependence> # 更新仓库的脚本" echo -e "4. $cmd_update repo <repourl> <path> <blacklist> <dependence> # 更新仓库的脚本"
echo -e "5. $cmd_update rmlog <days> # 删除旧日志" echo -e "5. $cmd_update rmlog <days> # 删除旧日志"
echo -e "6. $cmd_update code # 获取互助码" echo -e "6. $cmd_update code # 获取互助码"
echo -e "6. $cmd_update bot # 启动tg-bot"
} }
## 更新qinglong ## 更新qinglong
@ -380,6 +370,9 @@ main() {
code) code)
. $dir_shell/code.sh . $dir_shell/code.sh
;; ;;
bot)
. $dir_shell/bot.sh
;;
*) *)
echo -e "命令输入错误...\n" echo -e "命令输入错误...\n"
usage usage