From 476df4f840c355441e805b76d787ff0e03dce257 Mon Sep 17 00:00:00 2001 From: mack-a <57424792+mack-a@users.noreply.github.com> Date: Wed, 19 Jul 2023 17:50:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=84=9A=E6=9C=AC):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=AE=A2=E9=98=85=E6=9B=B4=E6=96=B0=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E5=BD=93=E4=BD=BF=E7=94=A8=E4=B8=BB=E8=8A=82=E7=82=B9=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E8=AE=A2=E9=98=85=E6=97=B6=E4=BC=9A=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BB=8E=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index fa416cd..cb28f13 100644 --- a/install.sh +++ b/install.sh @@ -6926,6 +6926,7 @@ addSubscribeMenu() { elif [[ "${addSubscribeStatus}" == "2" ]]; then rm -rf /etc/v2ray-agent/subscribe_remote/clashMeta/* rm -rf /etc/v2ray-agent/subscribe_remote/default/* + echo >/etc/v2ray-agent/subscribe_remote/remoteSubscribeUrl echoContent green " ---> 其他机器订阅删除成功" subscribe fi @@ -6942,6 +6943,7 @@ addOtherSubscribe() { elif ! echo "${remoteSubscribeUrl}" | grep -q ":"; then echoContent red " ---> 规则不合法" else + echo "${remoteSubscribeUrl}" >/etc/v2ray-agent/subscribe_remote/remoteSubscribeUrl local remoteUrl= remoteUrl=$(echo "${remoteSubscribeUrl}" | awk -F "[:]" '{print $1":"$2}') @@ -7435,6 +7437,13 @@ subscribe() { cat "/etc/v2ray-agent/subscribe_local/default/${email}" >>"/etc/v2ray-agent/subscribe/default/${emailMd5}" if [[ -f "/etc/v2ray-agent/subscribe_remote/default/${email}" ]]; then + echo >"/etc/v2ray-agent/subscribe_remote/default/${email}_tmp" + while read -r remoteUrl; do + updateRemoteSubscribe "${emailMd5}" "${email}" "${remoteUrl}" "default" + done < <(grep "VLESS_TCP/TLS_Vision" <"/etc/v2ray-agent/subscribe_remote/default/${email}" | awk -F "@" '{print $2}' | awk -F "?" '{print $1}') + + echo >"/etc/v2ray-agent/subscribe_remote/default/${email}" + cat "/etc/v2ray-agent/subscribe_remote/default/${email}_tmp" >"/etc/v2ray-agent/subscribe_remote/default/${email}" cat "/etc/v2ray-agent/subscribe_remote/default/${email}" >>"/etc/v2ray-agent/subscribe/default/${emailMd5}" fi @@ -7460,6 +7469,12 @@ subscribe() { cat "/etc/v2ray-agent/subscribe_local/clashMeta/${email}" >>"/etc/v2ray-agent/subscribe/clashMeta/${emailMd5}" if [[ -f "/etc/v2ray-agent/subscribe_remote/clashMeta/${email}" ]]; then + echo >"/etc/v2ray-agent/subscribe_remote/clashMeta/${email}_tmp" + while read -r remoteUrl; do + updateRemoteSubscribe "${emailMd5}" "${email}" "${remoteUrl}" "ClashMeta" + done < <(grep -A3 "VLESS_TCP/TLS_Vision" <"/etc/v2ray-agent/subscribe_remote/clashMeta/${email}" | awk '/server:|port:/ {print $2}' | paste -d ':' - -) + echo >"/etc/v2ray-agent/subscribe_remote/clashMeta/${email}" + cat "/etc/v2ray-agent/subscribe_remote/clashMeta/${email}_tmp" >"/etc/v2ray-agent/subscribe_remote/clashMeta/${email}" cat "/etc/v2ray-agent/subscribe_remote/clashMeta/${email}" >>"/etc/v2ray-agent/subscribe/clashMeta/${emailMd5}" fi @@ -7481,6 +7496,40 @@ subscribe() { fi } +# 更新远程订阅 +updateRemoteSubscribe() { + local emailMD5=$1 + local email=$2 + local remoteUrl=$3 + local type=$4 + local remoteDomain= + remoteDomain=$(echo "${remoteUrl}" | awk -F ":" '{print $1}') + local serverAlias= + serverAlias=$(grep "${remoteDomain}" <"/etc/v2ray-agent/subscribe_remote/remoteSubscribeUrl" | awk -F ":" '{print $3}') + + if [[ "${type}" == "ClashMeta" ]]; then + local clashMetaProxies= + clashMetaProxies=$(curl -s -4 "https://${remoteUrl}/s/clashMeta/${emailMD5}" | sed '/proxies:/d' | sed "s/${email}/${email}_${serverAlias}/g") + if echo "${clashMetaProxies}" | grep -q "${email}"; then + echo "${clashMetaProxies}" >>"/etc/v2ray-agent/subscribe_remote/clashMeta/${email}_tmp" + + echoContent green " ---> clashMeta订阅 ${remoteDomain}:${email} 更新成功" + else + echoContent red " ---> clashMeta订阅 ${remoteDomain}:${email}不存在" + fi + elif [[ "${type}" == "default" ]]; then + local default= + default=$(curl -s -4 "https://${remoteUrl}/s/default/${emailMD5}" | base64 -d | sed "s/${email}/${email}_${serverAlias}/g") + if echo "${default}" | grep -q "${email}"; then + echo "${default}" >>"/etc/v2ray-agent/subscribe_remote/default/${email}_tmp" + + echoContent green " ---> 通用订阅 ${remoteDomain}:${email} 更新成功" + else + echoContent red " ---> 通用订阅 ${remoteDomain}:${email} 不存在" + fi + fi +} + # 切换alpn switchAlpn() { echoContent skyBlue "\n功能 1/${totalProgress} : 切换alpn" @@ -7821,7 +7870,7 @@ menu() { cd "$HOME" || exit echoContent red "\n==============================================================" echoContent green "作者:mack-a" - echoContent green "当前版本:v2.10.1" + echoContent green "当前版本:v2.10.2" echoContent green "Github:https://github.com/mack-a/v2ray-agent" echoContent green "描述:八合一共存脚本\c" showInstallStatus