diff --git a/v2rayN/v2rayN/Handler/ConfigHandler.cs b/v2rayN/v2rayN/Handler/ConfigHandler.cs index e33430bb..93981b3b 100644 --- a/v2rayN/v2rayN/Handler/ConfigHandler.cs +++ b/v2rayN/v2rayN/Handler/ConfigHandler.cs @@ -945,7 +945,7 @@ namespace v2rayN.Handler foreach (string str in arrData) { //maybe sub - if (Utils.IsNullOrEmpty(subid) && (str.StartsWith(Global.httpsProtocol) || str.StartsWith(Global.httpProtocol))) + if (!isSub && (str.StartsWith(Global.httpsProtocol) || str.StartsWith(Global.httpProtocol))) { if (AddSubItem(ref config, str) == 0) { @@ -1187,7 +1187,15 @@ namespace v2rayN.Handler lstOriSub = LazyConfig.Instance.ProfileItems(subid); } - int counter = AddBatchServers(ref config, clipboardData, subid, isSub, lstOriSub); + var counter = 0; + if (Utils.IsBase64String(clipboardData)) + { + counter = AddBatchServers(ref config, Utils.Base64Decode(clipboardData), subid, isSub, lstOriSub); + } + if (counter < 1) + { + counter = AddBatchServers(ref config, clipboardData, subid, isSub, lstOriSub); + } if (counter < 1) { counter = AddBatchServers(ref config, Utils.Base64Decode(clipboardData), subid, isSub, lstOriSub); diff --git a/v2rayN/v2rayN/Tool/Utils.cs b/v2rayN/v2rayN/Tool/Utils.cs index 3518455c..f4befda0 100644 --- a/v2rayN/v2rayN/Tool/Utils.cs +++ b/v2rayN/v2rayN/Tool/Utils.cs @@ -453,6 +453,12 @@ namespace v2rayN } } + public static bool IsBase64String(string plainText) + { + var buffer = new Span(new byte[plainText.Length]); + return Convert.TryFromBase64String(plainText, buffer, out int _); + } + #endregion