From 14bd680202988bb602b2e737ceee3fc3e0ce2774 Mon Sep 17 00:00:00 2001 From: whyour Date: Fri, 7 May 2021 23:10:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0tg=20bot=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=A2=9E=E5=88=A0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sample/config.sample.sh | 8 +-- shell/api.sh | 30 +++------ shell/bot.sh | 19 ++++++ shell/code.sh | 144 ++++++++++++++++++++-------------------- shell/rmlog.sh | 6 +- shell/share.sh | 26 ++++---- shell/task.sh | 83 ++++++++++++----------- shell/update.sh | 39 +++++------ 8 files changed, 181 insertions(+), 174 deletions(-) create mode 100644 shell/bot.sh diff --git a/sample/config.sample.sh b/sample/config.sample.sh index fd346a42..5de938d3 100644 --- a/sample/config.sample.sh +++ b/sample/config.sample.sh @@ -1,5 +1,5 @@ ## Version: v2.0.0 -## Date: 2021-04-07 +## Date: 2021-05-07 ## Update Content: 新一版青龙。 ## 上面版本号中,如果第2位数字有变化,那么代表增加了新的参数,如果只有第3位数字有变化,仅代表更新了注释,没有增加新的参数,可更新可不更新 @@ -19,8 +19,8 @@ CommandTimeoutTime="1h" ## 在crontab.list中,除掉每小时上述时间启动的任务外,其他任务在你定义了 RandomDelay 的情况下,一律启用随机延迟,但如果你给某些任务添加了 "now" 或者 "conc",那么这些任务也将无视随机延迟直接启动 RandomDelay="300" -## 如果你自己会写shell脚本,并且希望在每次运行 ql update 命令时,额外运行你的 shell 脚本,请赋值为 "true" -EnableExtraShell="" +## 如果你自己会写shell脚本,并且希望在每次运行 ql update 命令时,额外运行你的 shell 脚本,请赋值为 "true",默认为true +EnableExtraShell="true" ## 自动按顺序进行账号间互助(选填) 设置为 true 时,将直接导入code最新日志来进行互助 AutoHelpOther="" @@ -33,7 +33,7 @@ AutoHelpOther="" HelpType="" -## 需组合的环境变量列表,env_name需要和var_name一一对应 +## 需组合的环境变量列表,env_name需要和var_name一一对应,如何有新活动按照格式添加(不懂勿动) env_name=( JD_COOKIE FRUITSHARECODES diff --git a/shell/api.sh b/shell/api.sh index 5f03c59a..4ee384e5 100755 --- a/shell/api.sh +++ b/shell/api.sh @@ -4,21 +4,6 @@ get_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() { local currentTimeStamp=$(date +%s) if [ $# -eq 1 ]; then @@ -44,10 +29,11 @@ add_cron_api() { --compressed ) code=$(echo $api | jq -r .code) + message=$(echo $api | jq -r .message) if [[ $code == 200 ]]; then - echo -e "$name 添加成功" + return "$name 添加成功" else - echo -e "$name 添加失败" + return "$name 添加失败(${message})" fi } @@ -79,10 +65,11 @@ update_cron_api() { --compressed ) code=$(echo $api | jq -r .code) + message=$(echo $api | jq -r .message) if [[ $code == 200 ]]; then - echo -e "$name 添加成功" + return "$name 更新成功" else - echo -e "$name 添加失败" + return "$name 更新失败(${message})" 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" ) code=$(echo $api | jq -r .code) + message=$(echo $api | jq -r .message) if [[ $code == 200 ]]; then - echo -e "$name 删除成功" + return "$name 删除成功" else - echo -e "$name 删除失败" + return "$name 删除失败(${message})" fi } diff --git a/shell/bot.sh b/shell/bot.sh new file mode 100644 index 00000000..cc6b8e3e --- /dev/null +++ b/shell/bot.sh @@ -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 & \ No newline at end of file diff --git a/shell/code.sh b/shell/code.sh index 9f2e2749..474ff259 100755 --- a/shell/code.sh +++ b/shell/code.sh @@ -5,9 +5,9 @@ dir_shell=/ql/shell . $dir_shell/share.sh ## 生成pt_pin清单 -gen_pt_pin_array () { +gen_pt_pin_array() { 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 tmp2=${!tmp1} i=$(($user_num - 1)) @@ -17,7 +17,7 @@ gen_pt_pin_array () { } ## 导出互助码的通用程序,$1:去掉后缀的脚本名称,$2:config.sh中的后缀,$3:活动中文名称 -export_codes_sub () { +export_codes_sub() { local task_name=$1 local config_name=$2 local chinese_name=$3 @@ -38,10 +38,10 @@ export_codes_sub () { ## 输出My系列变量 if [[ ${#code[*]} -gt 0 ]]; then - for ((m=0; m<${#pt_pin[*]}; m++)); do + for ((m = 0; m < ${#pt_pin[*]}; m++)); do tmp_my_code="" 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 tmp_my_code=${code[n]} break @@ -57,61 +57,61 @@ export_codes_sub () { if [[ ${#code[*]} -gt 0 ]]; then echo case $HelpType in - 0) ## 全部一致 + 0) ## 全部一致 + tmp_for_other="" + for ((m = 0; m < ${#pt_pin[*]}; m++)); do + j=$((m + 1)) + tmp_for_other="$tmp_for_other@\${$config_name_my$j}" + done + 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 + j=$((m + 1)) + echo "$config_name_for_other$j=\"\${${config_name_for_other}1}\"" + done + ;; + + 1) ## 均等助力 + for ((m = 0; m < ${#pt_pin[*]}; m++)); do tmp_for_other="" - for ((m=0; m<${#pt_pin[*]}; m++)); do - j=$((m + 1)) - tmp_for_other="$tmp_for_other@\${$config_name_my$j}" - done - 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 - j=$((m + 1)) - echo "$config_name_for_other$j=\"\${${config_name_for_other}1}\"" - done - ;; - - 1) ## 均等助力 - for ((m=0; m<${#pt_pin[*]}; m++)); do - tmp_for_other="" - j=$((m + 1)) - for ((n=$m; n<$(($user_sum + $m)); n++)); do - [[ $m -eq $n ]] && continue - if [[ $((n + 1)) -le $user_sum ]]; then - k=$((n + 1)) - else - k=$((n + 1 - $user_sum)) - fi - tmp_for_other="$tmp_for_other@\${$config_name_my$k}" - done - echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" - done - ;; - - 2) ## 本套脚本内账号间随机顺序助力 - for ((m=0; m<${#pt_pin[*]}; m++)); do - tmp_for_other="" - random_num_list=$(seq $user_sum | sort -R) - j=$((m + 1)) - for n in $random_num_list; do - [[ $j -eq $n ]] && continue - tmp_for_other="$tmp_for_other@\${$config_name_my$n}" - done - echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" - done - ;; - - *) ## 按编号优先 - for ((m=0; m<${#pt_pin[*]}; m++)); do - tmp_for_other="" - j=$((m + 1)) - for ((n=0; n<${#pt_pin[*]}; n++)); do - [[ $m -eq $n ]] && continue + j=$((m + 1)) + for ((n = $m; n < $(($user_sum + $m)); n++)); do + [[ $m -eq $n ]] && continue + if [[ $((n + 1)) -le $user_sum ]]; then k=$((n + 1)) - tmp_for_other="$tmp_for_other@\${$config_name_my$k}" - done - echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" + else + k=$((n + 1 - $user_sum)) + fi + tmp_for_other="$tmp_for_other@\${$config_name_my$k}" done - ;; + echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" + done + ;; + + 2) ## 本套脚本内账号间随机顺序助力 + for ((m = 0; m < ${#pt_pin[*]}; m++)); do + tmp_for_other="" + random_num_list=$(seq $user_sum | sort -R) + j=$((m + 1)) + for n in $random_num_list; do + [[ $j -eq $n ]] && continue + tmp_for_other="$tmp_for_other@\${$config_name_my$n}" + done + echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" + done + ;; + + *) ## 按编号优先 + for ((m = 0; m < ${#pt_pin[*]}; m++)); do + tmp_for_other="" + j=$((m + 1)) + for ((n = 0; n < ${#pt_pin[*]}; n++)); do + [[ $m -eq $n ]] && continue + k=$((n + 1)) + tmp_for_other="$tmp_for_other@\${$config_name_my$k}" + done + echo "$config_name_for_other$j=\"$tmp_for_other\"" | perl -pe "s|($config_name_for_other\d+=\")@|\1|" + done + ;; esac fi else @@ -120,25 +120,25 @@ export_codes_sub () { } ## 汇总输出 -export_all_codes () { +export_all_codes() { gen_pt_pin_array echo -e "\n# 从日志提取互助码,编号和配置文件中Cookie编号完全对应,如果为空就是所有日志中都没有。\n\n# 即使某个MyXxx变量未赋值,也可以将其变量名填在ForOtherXxx中,jtask脚本会自动过滤空值。\n" echo -n "# 你选择的互助码模板为:" case $HelpType in - 0) - echo "所有账号助力码全部一致。" - ;; - 1) - echo "所有账号机会均等助力。" - ;; - 2) - echo "本套脚本内账号间随机顺序助力。" - ;; - *) - echo "按账号编号优先。" - ;; + 0) + echo "所有账号助力码全部一致。" + ;; + 1) + echo "所有账号机会均等助力。" + ;; + 2) + echo "本套脚本内账号间随机顺序助力。" + ;; + *) + echo "按账号编号优先。" + ;; esac - for ((i=0; i<${#name_js[*]}; i++)); do + for ((i = 0; i < ${#name_js[*]}; i++)); do echo -e "\n## ${name_chinese[i]}:" export_codes_sub "${name_js[i]}" "${name_config[i]}" "${name_chinese[i]}" done @@ -148,4 +148,4 @@ export_all_codes () { log_time=$(date "+%Y-%m-%d-%H-%M-%S") log_path="$dir_code/$log_time.log" make_dir "$dir_code" -export_all_codes | perl -pe "{s|京东种豆|种豆|; s|crazyJoy任务|疯狂的JOY|}" | tee $log_path \ No newline at end of file +export_all_codes | perl -pe "{s|京东种豆|种豆|; s|crazyJoy任务|疯狂的JOY|}" | tee $log_path diff --git a/shell/rmlog.sh b/shell/rmlog.sh index 2eaaee35..d64359f8 100755 --- a/shell/rmlog.sh +++ b/shell/rmlog.sh @@ -7,11 +7,11 @@ dir_shell=/ql/shell days=$1 ## 删除运行js脚本的旧日志 -remove_js_log () { +remove_js_log() { local log_full_path_list=$(ls -l $dir_log/*/*.log | awk '{print $9}') local diff_time for log in $log_full_path_list; do - local log_date=$(echo $log | awk -F "/" '{print $NF}' | cut -c1-10) #文件名比文件属性获得的日期要可靠 + local log_date=$(echo $log | awk -F "/" '{print $NF}' | cut -c1-10) #文件名比文件属性获得的日期要可靠 if [[ $is_macos -eq 1 ]]; then diff_time=$(($(date +%s) - $(date -j -f "%Y-%m-%d" "$log_date" +%s))) else @@ -22,7 +22,7 @@ remove_js_log () { } ## 删除空文件夹 -remove_empty_dir () { +remove_empty_dir() { cd $dir_log for dir in $(ls); do if [ -d $dir ] && [[ -z $(ls $dir) ]]; then diff --git a/shell/share.sh b/shell/share.sh index 530b89e3..255bc9dc 100755 --- a/shell/share.sh +++ b/shell/share.sh @@ -49,7 +49,7 @@ original_name=( ) ## 导入配置文件 -import_config () { +import_config() { [ -f $file_config_user ] && . $file_config_user user_sum=0 for line in $(cat $file_cookie); do @@ -59,7 +59,7 @@ import_config () { } ## 创建目录,$1:目录的绝对路径 -make_dir () { +make_dir() { local dir=$1 if [[ ! -d $dir ]]; then mkdir -p $dir @@ -67,7 +67,7 @@ make_dir () { } ## 检测termux -detect_termux () { +detect_termux() { if [[ ${ANDROID_RUNTIME_ROOT}${ANDROID_ROOT} ]] || [[ $PATH == *com.termux* ]]; then is_termux=1 else @@ -76,18 +76,18 @@ detect_termux () { } ## 检测macos -detect_macos () { +detect_macos() { [[ $(uname -s) == Darwin ]] && is_macos=1 || is_macos=0 } ## 生成随机数,$1:用来求余的数字 -gen_random_num () { +gen_random_num() { local divi=$1 echo $((${RANDOM} % $divi)) } ## 创建软连接的子函数,$1:软连接文件路径,$2:要连接的对象 -link_shell_sub () { +link_shell_sub() { local link_path="$1" local original_path="$2" 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 local path="/data/data/com.termux/files/usr/bin/" elif [[ $PATH == */usr/local/bin* ]] && [ -d /usr/local/bin ]; then @@ -107,14 +107,14 @@ link_shell () { echo -e "脚本功能受限,请自行添加命令的软连接...\n" fi 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]}" done fi } ## 定义各命令 -define_cmd () { +define_cmd() { local cmd_prefix cmd_suffix if type task >/dev/null 2>&1; then cmd_suffix="" @@ -131,13 +131,13 @@ define_cmd () { cmd_prefix="bash $dir_shell/" 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}" done } ## 修复配置文件 -fix_config () { +fix_config() { make_dir $dir_config make_dir $dir_log make_dir $dir_db @@ -147,7 +147,7 @@ fix_config () { make_dir $dir_repo make_dir $dir_raw make_dir $dir_update_log - + if [ ! -s $file_config_user ]; then echo -e "复制一份 $file_config_sample 为 $file_config_user,随后请按注释编辑你的配置文件:$file_config_user\n" cp -fv $file_config_sample $file_config_user @@ -255,4 +255,4 @@ detect_termux detect_macos define_cmd fix_config -import_config \ No newline at end of file +import_config diff --git a/shell/task.sh b/shell/task.sh index e5981407..951934be 100755 --- a/shell/task.sh +++ b/shell/task.sh @@ -5,11 +5,11 @@ dir_shell=/ql/shell . $dir_shell/share.sh ## 组合Cookie和互助码子程序,$1:要组合的内容 -combine_sub () { +combine_sub() { local what_combine=$1 local combined_all="" 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 tmp2=${!tmp1} combined_all="$combined_all&$tmp2" @@ -18,23 +18,23 @@ combine_sub () { } ## 正常依次运行时,组合所有账号的Cookie与互助码 -combine_all () { - for ((i=0; i<${#env_name[*]}; i++)); do +combine_all() { + for ((i = 0; i < ${#env_name[*]}; i++)); do export ${env_name[i]}=$(combine_sub ${var_name[i]}) done } ## 并发运行时,直接申明每个账号的Cookie与互助码,$1:用户Cookie编号 -combine_one () { +combine_one() { 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 export ${env_name[i]}=${!tmp} done } ## 选择python3还是node -define_program () { +define_program() { local p1=$1 if [[ $p1 == *.js ]]; then which_program="node" @@ -43,9 +43,9 @@ define_program () { else which_program="" fi -} +} -random_delay () { +random_delay() { local random_delay_max=$RandomDelay if [[ $random_delay_max ]] && [[ $random_delay_max -gt 0 ]]; then local current_min=$(date "+%-M") @@ -58,7 +58,7 @@ random_delay () { } ## scripts目录下所有可运行脚本数组 -gen_array_scripts () { +gen_array_scripts() { local dir_current=$(pwd) local i="-1" cd $dir_scripts @@ -74,7 +74,7 @@ gen_array_scripts () { } ## 使用说明 -usage () { +usage() { define_cmd gen_array_scripts echo -e "task命令运行本程序自动添加进crontab的脚本,需要输入脚本的绝对路径或去掉 “$dir_scripts/” 目录后的相对路径(定时任务中请写作相对路径),用法为:" @@ -83,7 +83,7 @@ usage () { echo -e "3.$cmd_task conc # 并发执行,无论是否设置了随机延迟,均立即运行,前台不产生日志,直接记录在日志文件中" if [[ ${#array_scripts[*]} -gt 0 ]]; then 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]}" done else @@ -92,13 +92,13 @@ usage () { } ## run nohup,$1:文件名,不含路径,带后缀 -run_nohup () { +run_nohup() { local file_name=$1 nohup node $file_name &>$log_path & } ## 正常运行单个脚本,$1:传入参数 -run_normal () { +run_normal() { local p1=$1 cd $dir_scripts define_program "$p1" @@ -121,7 +121,7 @@ run_normal () { ## 并发执行,因为是并发,所以日志只能直接记录在日志文件中(日志文件以Cookie编号结尾),前台执行并发跑时不会输出日志 ## 并发执行时,设定的 RandomDelay 不会生效,即所有任务立即执行 -run_concurrent () { +run_concurrent() { local p1=$1 cd $dir_scripts define_program "$p1" @@ -129,41 +129,48 @@ run_concurrent () { make_dir $log_dir log_time=$(date "+%Y-%m-%d-%H-%M-%S.%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 log_path="$log_dir/${log_time}_${user_num}.log" timeout $CommandTimeoutTime $which_program $p1 &>$log_path & 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 - 0) - echo - usage + 0) + echo + usage + ;; + 1) + run_normal $1 + ;; + 2) + case $2 in + now) + run_normal $1 $2 ;; - 1) - run_normal $1 - ;; - 2) - case $2 in - now) - run_normal $1 $2 - ;; - conc) - run_concurrent $1 $2 - ;; - *) - echo -e "\n命令输入错误...\n" - usage - ;; - esac + conc) + run_concurrent $1 $2 ;; *) - echo -e "\n命令参数过多...\n" - usage + run_else "$@" ;; + esac + ;; + *) + run_else "$@" + ;; esac } diff --git a/shell/update.sh b/shell/update.sh index df69c551..0052919e 100755 --- a/shell/update.sh +++ b/shell/update.sh @@ -108,21 +108,15 @@ output_list_add_drop() { del_cron() { local list_drop=$1 local author=$2 - local detail detail2 - detail=$(cat $list_drop) + local detail="" 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|") - del_cron_api "$id" + result=$(del_cron_api "$id") rm -f "$dir_scripts/${cron}" + detail="${detail}\n${result}" done - exit_status=$? - detail2=$(echo $detail | perl -pe "s| |\\\n|g") - if [[ $exit_status -eq 0 ]]; then - notify "删除失效任务通知" "成功删除以下失效的定时任务:\n$detail2" - else - notify "删除任务失败通知" "尝试自动删除以下定时任务出错,请手动删除:\n$detail2" - fi + notify "删除失效任务通知" "$detail2" } ## 自动增加定时任务,需要:1.AutoAddCron 设置为 true;2.正常更新js脚本,没有报错;3.存在新任务;4.crontab.list存在并且不为空 @@ -131,9 +125,9 @@ add_cron() { local list_add=$1 local author=$2 echo -e "开始尝试自动添加定时任务...\n" - local detail=$(cat $list_add) + local detail="" cd $dir_scripts - for file in $detail; do + for file in $(cat $list_add); do local file_name=${file/${author}\_/} if [ -f $file ]; then cron_line=$( @@ -148,16 +142,11 @@ add_cron() { cron_name=$(grep "new Env" $file | awk -F "'|\"" '{print $2}' | head -1) [[ -z $cron_name ]] && cron_name="$file_name" [[ -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 done - exit_status=$? - local detail2=$(echo $detail | perl -pe "s| |\\\n|g") - if [[ $exit_status -eq 0 ]]; then - notify "新增任务通知" "成功添加新的定时任务:\n$detail2" - else - notify "新任务添加失败通知" "尝试自动添加以下新的定时任务出错,请手动添加:\n$detail2" - fi + notify "新增任务通知" "$detail" } ## 更新仓库 @@ -207,10 +196,10 @@ update_raw() { cp -f $raw_file_name $dir_scripts/${filename} cron_line=$( 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 | 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 }" | sort -u | head -1 ) @@ -249,6 +238,7 @@ usage() { echo -e "4. $cmd_update repo # 更新仓库的脚本" echo -e "5. $cmd_update rmlog # 删除旧日志" echo -e "6. $cmd_update code # 获取互助码" + echo -e "6. $cmd_update bot # 启动tg-bot" } ## 更新qinglong @@ -380,6 +370,9 @@ main() { code) . $dir_shell/code.sh ;; + bot) + . $dir_shell/bot.sh + ;; *) echo -e "命令输入错误...\n" usage