From 0a5e06c4e9865144febbf0c438f52098fa164df2 Mon Sep 17 00:00:00 2001 From: juewuy Date: Sun, 3 Mar 2024 20:34:14 +0800 Subject: [PATCH] =?UTF-8?q?~providers=E5=8A=9F=E8=83=BD=E7=8E=B0=E5=9C=A8?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=AF=BC=E5=85=A5=E6=9C=AC=E5=9C=B0yaml?= =?UTF-8?q?=E6=96=87=E4=BB=B6=20~=E4=BF=AE=E5=A4=8Dprovides=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=9C=A8meta=E5=86=85=E6=A0=B8=E6=9C=AA=E8=83=BD?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E8=B7=B3=E8=BF=87=E8=AF=81=E4=B9=A6=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E7=9A=84bug=20~=E4=BF=AE=E5=A4=8D=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E5=AF=BC=E5=85=A5CrashCore=E5=91=BD=E5=90=8D=E7=9A=84=E5=86=85?= =?UTF-8?q?=E6=A0=B8=E6=97=B6=E6=9C=AA=E6=AD=A3=E7=A1=AE=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E7=9A=84bug=20~=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=8A=A8=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=95=B0=E6=8D=AE=E5=BA=93=E4=BB=BB=E5=8A=A1=E6=98=8E?= =?UTF-8?q?=E6=98=8E=E6=88=90=E5=8A=9F=E5=8D=B4=E6=8F=90=E7=A4=BA=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E5=A4=B1=E8=B4=A5=E7=9A=84bug=20~=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E4=BC=9A=E6=9B=B4=E6=96=B0=E4=B8=80=E4=BA=9B=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E6=95=B0=E6=8D=AE=E5=BA=93=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/getdate.sh | 52 ++++++++++++++++++++++++++++++++++++---------- scripts/menu.sh | 2 +- scripts/task.sh | 17 +++++++-------- 3 files changed, 50 insertions(+), 21 deletions(-) diff --git a/scripts/getdate.sh b/scripts/getdate.sh index c9aaa90..eb2fb99 100644 --- a/scripts/getdate.sh +++ b/scripts/getdate.sh @@ -336,11 +336,20 @@ setproxies(){ #自定义clash节点 } gen_clash_providers(){ #生成clash的providers配置文件 gen_clash_providers_txt(){ + if [ -n "$(echo $2|grep -E '^./')" ];then + local type=file + local path=$2 + local download_url= + else + local type=http + local path="./providers/${1}.yaml" + local download_url=$2 + fi cat >> $TMPDIR/providers/providers.yaml <> $TMPDIR/providers/providers.yaml <> ${TMPDIR}/providers/providers.json <> ${TMPDIR}/providers/providers.json <> ${TMPDIR}/providers/providers.json < " link - if [ -n "$(echo $link | grep -E '.*\..*')" ] && [ -z "$(grep "$link" $CRASHDIR/configs/providers.cfg)" ];then + read -p "请输入providers订阅地址或本地相对路径 > " link + if [ -n "$(echo $link | grep -E '.*\..*|^\./')" ] && [ -z "$(grep "$link" $CRASHDIR/configs/providers.cfg)" ];then link=$(echo $link | sed 's/\&/\\\&/g') #特殊字符添加转义 sed -i "s|$provider_name $provider_url|$provider_name $link|" $CRASHDIR/configs/providers.cfg else @@ -562,13 +585,16 @@ setproviders(){ #自定义providers ;; a) echo ----------------------------------------------- - read -p "请输入http(s)格式的providers订阅地址 > " link - [ -n "$(echo $link | grep -E '.*\..*')" ] && { + echo -e "支持填写在线的\033[32mYClash订阅地址\033[0m或者\033[32m本地Clash配置文件\033[0m" + echo -e "本地配置文件请放在\033[32m$CRASHDIR\033[0m目录下,并填写相对路径如【\033[32m./providers/test.yaml\033[0m】" + echo ----------------------------------------------- + read -p "请输入providers订阅地址或本地相对路径 > " link + [ -n "$(echo $link | grep -E '.*\..*|^\./')" ] && { read -p "请输入代理提供者的名称或者代号(不可重复) > " name [ -n "$name" ] && [ -z "$(grep "name" $CRASHDIR/configs/providers.cfg)" ] && { echo ----------------------------------------------- echo -e "代理提供者:\033[36m$name\033[0m" - echo -e "链接地址:\033[32m$link\033[0m" + echo -e "链接地址/路径:\033[32m$link\033[0m" read -p "确认添加?(1/0) > " res [ "$res" = 1 ] && { echo "$name $link" >> $CRASHDIR/configs/providers.cfg @@ -1696,6 +1722,9 @@ setgeo(){ #数据库选择菜单 for file in cn_ip.txt cn_ipv6.txt Country.mmdb GeoSite.dat geoip.db geosite.db ;do rm -rf $CRASHDIR/$file done + for var in Country_v cn_mini_v china_ip_list_v china_ipv6_list_v geosite_v geoip_cn_v geosite_cn_v ;do + setconfig $var + done rm -rf $CRASHDIR/*.srs echo -e "\033[33m所有数据库文件均已清理!\033[0m" sleep 1 @@ -2025,6 +2054,7 @@ checkupdate(){ [ "$?" = "0" ] && version_new=$(cat ${TMPDIR}/version_new | grep -oE 'versionsh=.*' | awk -F'=' '{ print $2 }') if [ -n "$version_new" ];then source ${TMPDIR}/version_new 2>/dev/null + cat ${TMPDIR}/version_new else echo -e "\033[31m检查更新失败!请尝试切换其他安装源!\033[0m" setserver @@ -2048,7 +2078,7 @@ update(){ echo ----------------------------------------------- echo -e " 1 更新\033[36m管理脚本 \033[33m$versionsh_l\033[0m > \033[32m$version_new \033[36m$release_type\033[0m" echo -e " 2 切换\033[33m内核文件 \033[33m$core_v\033[0m > \033[32m$core_v_new\033[0m" - echo -e " 3 更新\033[32m数据库文件\033[0m" + echo -e " 3 更新\033[32m数据库文件\033[0m > \033[32m$GeoIP_v\033[0m" echo -e " 4 安装本地\033[35mDashboard\033[0m面板" echo -e " 5 安装/更新本地\033[33m根证书文件\033[0m" echo -e " 6 查看\033[32mPAC\033[0m自动代理配置" diff --git a/scripts/menu.sh b/scripts/menu.sh index 9297288..fa4366f 100644 --- a/scripts/menu.sh +++ b/scripts/menu.sh @@ -108,7 +108,7 @@ ckstatus(){ #检查执行权限 [ ! -x ${CRASHDIR}/start.sh ] && chmod +x ${CRASHDIR}/start.sh #检查/tmp内核文件 - for file in `ls -F /tmp | grep -v [/\$] | grep -v ' ' | grep -Ev ".*[(gz)(zip)(7z)(tar)]$" | grep -iE '^clash$|^clash-linux.*|^mihomo.*|^sing.*box|^clash.meta.*'` ; do + for file in `ls -F /tmp | grep -v [/\$] | grep -v ' ' | grep -Ev ".*[(gz)(zip)(7z)(tar)]$" | grep -iE 'CrashCore|^clash$|^clash-linux.*|^mihomo.*|^sing.*box|^clash.meta.*'` ; do file=/tmp/$file chmod +x $file echo -e "发现可用的内核文件: \033[36m$file\033[0m " diff --git a/scripts/task.sh b/scripts/task.sh index 5580f8d..59c755e 100644 --- a/scripts/task.sh +++ b/scripts/task.sh @@ -127,22 +127,21 @@ update_mmdb(){ #自动更新数据库 if [ "$?" != "0" ];then logger "任务【自动更新数据库文件】更新【$2】下载失败!" rm -rf ${TMPDIR}/$1 - return 1 else mv -f ${TMPDIR}/$1 ${BINDIR}/$1 setconfig $geo_v $GeoIP_v logger "任务【自动更新数据库文件】更新【$2】成功!" - return 0 fi fi } - [ -n "${Country_v}" ] && getgeo Country.mmdb Country.mmdb - [ -n "${cn_mini_v}" ] && getgeo Country.mmdb cn_mini.mmdb - [ -n "${china_ip_list_v}" ] && getgeo cn_ip.txt china_ip_list.txt - [ -n "${china_ipv6_list_v}" ] && getgeo cn_ipv6.txt china_ipv6_list.txt - [ -n "${geosite_v}" ] && getgeo GeoSite.dat geosite.dat - [ -n "${geoip_cn_v}" ] && getgeo geoip.db geoip_cn.db - [ -n "${geosite_cn_v}" ] && getgeo geosite.db geosite_cn.db + [ -n "${Country_v}" -a -s $CRASHDIR/Country.mmdb ] && getgeo Country.mmdb Country.mmdb + [ -n "${cn_mini_v}" -a -s $CRASHDIR/Country.mmdb ] && getgeo Country.mmdb cn_mini.mmdb + [ -n "${china_ip_list_v}" -a -s $CRASHDIR/cn_ip.txt ] && getgeo cn_ip.txt china_ip_list.txt + [ -n "${china_ipv6_list_v}" -a -s $CRASHDIR/cn_ipv6.txt ] && getgeo cn_ipv6.txt china_ipv6_list.txt + [ -n "${geosite_v}" -a -s $CRASHDIR/GeoSite.dat ] && getgeo GeoSite.dat geosite.dat + [ -n "${geoip_cn_v}" -a -s $CRASHDIR/geoip.db ] && getgeo geoip.db geoip_cn.db + [ -n "${geosite_cn_v}" -a -s $CRASHDIR/geosite.db ] && getgeo geosite.db geosite_cn.db + return 0 } reset_firewall(){ #重设透明路由防火墙 ${CRASHDIR}/start.sh stop_firewall