~providers功能现在支持导入本地yaml文件
~修复provides功能在meta内核未能正确跳过证书验证的bug ~修复本地导入CrashCore命名的内核时未正确提示的bug ~修复自动更新数据库任务明明成功却提示执行失败的bug ~修复自动更新数据库会更新一些当前无用数据库文件的bug
This commit is contained in:
@@ -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暂时只支持yaml格式的配置导入,并且不支持跳过证书验证功能\033[0m"
|
||||
echo -e "\033[36m支持在线及本地的Yaml格式配置导入\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自动代理配置"
|
||||
|
||||
Reference in New Issue
Block a user