From 0c46606e14598c836e295f5f31619304995be657 Mon Sep 17 00:00:00 2001 From: whyour Date: Tue, 14 Feb 2023 21:15:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=B1=BB=E5=9E=8B=E8=AE=A2=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shell/api.sh | 4 +++ shell/update.sh | 58 ++++++++++++++++++-------------- src/pages/subscription/modal.tsx | 8 ++--- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/shell/api.sh b/shell/api.sh index e2315cc5..7abc94bb 100755 --- a/shell/api.sh +++ b/shell/api.sh @@ -27,6 +27,10 @@ add_cron_api() { local sub_id=$4 fi + if [[ ! $sub_id ]];then + sub_id="null" + fi + local api=$( curl -s --noproxy "*" "http://0.0.0.0:5600/open/crons?t=$currentTimeStamp" \ -H "Accept: application/json" \ diff --git a/shell/update.sh b/shell/update.sh index accd340d..5f460a4c 100755 --- a/shell/update.sh +++ b/shell/update.sh @@ -147,40 +147,48 @@ update_repo() { ## 更新所有 raw 文件 update_raw() { - echo -e "--------------------------------------------------------------\n" local url="$1" + local proxy="$2" + local autoAddCron="$3" + local autoDelCron="$4" + + if [[ ! $autoAddCron ]];then + autoAddCron=${AutoAddCron} + fi + if [[ ! $autoDelCron ]];then + autoDelCron=${AutoDelCron} + fi + local raw_url="$url" local suffix="${raw_url##*.}" local raw_file_name="${uniq_path}.${suffix}" echo -e "开始下载:${raw_url} \n\n保存路径:$dir_raw/${raw_file_name}\n" - set_proxy - wget -q --no-check-certificate -O "$dir_raw/${raw_file_name}.new" ${raw_url} - unset_proxy + wget -q --no-check-certificate -e "http_proxy=${proxy};https_proxy=${proxy}" -O "$dir_raw/${raw_file_name}.new" ${raw_url} if [[ $? -eq 0 ]]; then mv "$dir_raw/${raw_file_name}.new" "$dir_raw/${raw_file_name}" echo -e "下载 ${raw_file_name} 成功...\n" - cd $dir_raw - local filename="raw_${raw_file_name}" - local cron_id=$(cat $list_crontab_user | grep -E "$cmd_task.* $filename" | perl -pe "s|.*ID=(.*) $cmd_task.* $filename\.*|\1|" | head -1 | head -1 | awk -F " " '{print $1}') - cp -f $raw_file_name $dir_scripts/${filename} - cron_line=$( - perl -ne "{ - print if /.*([\d\*]*[\*-\/,\d]*[\d\*] ){4,5}[\d\*]*[\*-\/,\d]*[\d\*]( |,|\").*$raw_file_name/ - }" $raw_file_name | - perl -pe "{ - s|[^\d\*]*(([\d\*]*[\*-\/,\d]*[\d\*] ){4,5}[\d\*]*[\*-\/,\d]*[\d\*])( \|,\|\").*/?$raw_file_name.*|\1|g; - s|\*([\d\*])(.*)|\1\2|g; - s| | |g; - }" | sort -u | head -1 - ) - cron_name=$(grep "new Env" $raw_file_name | awk -F "\(" '{print $2}' | awk -F "\)" '{print $1}' | sed 's:^.\(.*\).$:\1:' | head -1) - [[ -z $cron_name ]] && cron_name="$raw_file_name" - [[ -z $cron_line ]] && cron_line=$(grep "cron:" $raw_file_name | awk -F ":" '{print $2}' | head -1 | xargs) - [[ -z $cron_line ]] && cron_line=$(grep "cron " $raw_file_name | awk -F "cron \"" '{print $2}' | awk -F "\" " '{print $1}' | head -1 | xargs) - [[ -z $cron_line ]] && cron_line="$default_cron" - if [[ -z $cron_id ]]; then + if [[ -z $cron_id ]] && [[ ${autoAddCron} == true ]]; then + cd $dir_raw + local filename="raw_${raw_file_name}" + local cron_id=$(cat $list_crontab_user | grep -E "$cmd_task.* $filename" | perl -pe "s|.*ID=(.*) $cmd_task.* $filename\.*|\1|" | head -1 | awk -F " " '{print $1}') + cp -f $raw_file_name $dir_scripts/${filename} + cron_line=$( + perl -ne "{ + print if /.*([\d\*]*[\*-\/,\d]*[\d\*] ){4,5}[\d\*]*[\*-\/,\d]*[\d\*]( |,|\").*$raw_file_name/ + }" $raw_file_name | + perl -pe "{ + s|[^\d\*]*(([\d\*]*[\*-\/,\d]*[\d\*] ){4,5}[\d\*]*[\*-\/,\d]*[\d\*])( \|,\|\").*/?$raw_file_name.*|\1|g; + s|\*([\d\*])(.*)|\1\2|g; + s| | |g; + }" | sort -u | head -1 + ) + cron_name=$(grep "new Env" $raw_file_name | awk -F "\(" '{print $2}' | awk -F "\)" '{print $1}' | sed 's:^.\(.*\).$:\1:' | head -1) + [[ -z $cron_name ]] && cron_name="$raw_file_name" + [[ -z $cron_line ]] && cron_line=$(grep "cron:" $raw_file_name | awk -F ":" '{print $2}' | head -1 | xargs) + [[ -z $cron_line ]] && cron_line=$(grep "cron " $raw_file_name | awk -F "cron \"" '{print $2}' | awk -F "\" " '{print $1}' | head -1 | xargs) + [[ -z $cron_line ]] && cron_line="$default_cron" result=$(add_cron_api "$cron_line:$cmd_task $filename:$cron_name:$SUB_ID") echo -e "$result\n" notify_api "新增任务通知" "\n$result" @@ -475,7 +483,7 @@ main() { raw) get_uniq_path "$p2" if [[ -n $p2 ]]; then - update_raw "$p2" + update_raw "$p2" "$p3" "$p4" else eval echo -e "命令输入错误...\\\n" $cmd eval usage $cmd diff --git a/src/pages/subscription/modal.tsx b/src/pages/subscription/modal.tsx index e31a771c..5bba0e61 100644 --- a/src/pages/subscription/modal.tsx +++ b/src/pages/subscription/modal.tsx @@ -15,8 +15,8 @@ import cron_parser from 'cron-parser'; import isNil from 'lodash/isNil'; const { Option } = Select; -const repoUrlRegx = /[^\/\:]+\/[^\/]+(?=\.git)/; -const fileUrlRegx = /[^\/\:]+\/[^\/]+$/; +const repoUrlRegx = /([^\/\:]+\/[^\/]+)(?=\.git)/; +const fileUrlRegx = /([^\/\:]+\/[^\/\.]+)\.[a-z]+$/; const SubscriptionModal = ({ subscription, @@ -100,7 +100,7 @@ const SubscriptionModal = ({ let _alias = ''; const _regx = _type === 'file' ? fileUrlRegx : repoUrlRegx; if (_regx.test(_url)) { - _alias = _url.match(_regx)![0].replaceAll('/', '_').replaceAll('.', '_'); + _alias = _url.match(_regx)![1].replaceAll('/', '_').replaceAll('.', '_'); } if (_branch) { _alias = _alias + '_' + _branch; @@ -232,7 +232,7 @@ const SubscriptionModal = ({ dependences, branch, extensions, - alias: formatAlias(url, branch), + alias: formatAlias(url, branch, _type), }); setType(_type); }