@@ -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 <<EOF
${1}:
type: http
url: "${2} "
path: ./providers/${1}.yaml
url: "$download_url "
path: "$path"
interval: 43200
health-check:
enable: true
@@ -349,7 +358,7 @@ gen_clash_providers(){ #生成clash的providers配置文件
interval: 600
EOF
[ " $crashcore " = 'meta' ] && {
[ " $skip_cert " = "已 开启" ] && skip_cert_verify = 'skip-cert-verify: true'
[ " $skip_cert " ! = "未 开启" ] && skip_cert_verify = 'skip-cert-verify: true'
cat >> $TMPDIR /providers/providers.yaml <<EOF
override:
udp: true
@@ -417,7 +426,18 @@ EOF
}
gen_singbox_providers( ) { #生成singbox的providers配置文件
gen_singbox_providers_txt( ) {
cat >> ${ TMPDIR } /providers/providers.json <<EOF
if [ -n " $( echo $2 | grep -E '^./' ) " ] ; then
cat >> ${ TMPDIR } /providers/providers.json <<EOF
{
"tag": "${1}",
"type": "file",
"healthcheck_url": "https://www.gstatic.com/generate_204",
"healthcheck_interval": "10m",
"path": "${2}"
},
EOF
else
cat >> ${ TMPDIR } /providers/providers.json <<EOF
{
"tag": "${1}",
"type": "http",
@@ -430,6 +450,8 @@ gen_singbox_providers(){ #生成singbox的providers配置文件
"download_detour": "DIRECT"
},
EOF
fi
}
if [ -z " $( grep " provider_temp_ ${ coretype } " ${ CRASHDIR } /configs/ShellCrash.cfg) " ] ; then
provider_temp_file = $( sed -n "1 p" ${ CRASHDIR } /configs/${ coretype } _providers.list | awk '{print $2}' )
@@ -495,7 +517,8 @@ EOF
setproviders( ) { #自定义providers
echo -----------------------------------------------
echo -e "\033[33m你可以在这里快捷管理与生成自定义的providers提供者\033[0m"
echo -e "\033[33m暂时只支持y aml格式的 配置导入,并且不支持跳过证书验证功能 \033[0m"
echo -e "\033[36m支持在线及本地的Y aml格式配置导入\033[0m"
echo -e "\033[33msingboxp内核暂不支持跳过证书验证功能\033[0m"
[ -s $CRASHDIR /configs/providers.cfg ] && {
echo -----------------------------------------------
echo -e "\033[36m输入对应数字可管理providers提供者\033[0m"
@@ -538,8 +561,8 @@ setproviders(){ #自定义providers
fi
; ;
2)
read -p "请输入http(s)格式的providers链接地址 > " 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自动代理配置"