Release 1.9.0: add VLESS, VMess and Trojan via Xray-core.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Navis
2026-07-29 07:05:44 +03:00
co-authored by Cursor
parent fce99cc393
commit 573a834d1b
25 changed files with 1199 additions and 36 deletions
+15
View File
@@ -8,6 +8,7 @@ import (
"vpnclient/internal/protocols/awg"
"vpnclient/internal/protocols/hysteria2"
"vpnclient/internal/protocols/naive"
"vpnclient/internal/protocols/xray"
)
// Normalize normalizes a share/proxy URI for the given protocol (or auto-detect).
@@ -26,11 +27,25 @@ func Normalize(proto config.Protocol, raw string) (normalized string, detected c
case config.ProtocolAWG:
u, rem, err := awg.NormalizeShareLink(raw)
return u, config.ProtocolAWG, rem, err
case config.ProtocolVLESS, config.ProtocolVMess, config.ProtocolTrojan:
u, rem, err := xray.NormalizeShareLink(raw)
if err != nil {
return "", proto, "", err
}
detected = xray.DetectProtocol(u)
if detected == "" {
detected = proto
}
return u, detected, rem, nil
case config.ProtocolNaive, "":
if awg.Detect(raw) {
u, rem, err := awg.NormalizeShareLink(raw)
return u, config.ProtocolAWG, rem, err
}
if xray.Detect(raw) {
u, rem, err := xray.NormalizeShareLink(raw)
return u, xray.DetectProtocol(raw), rem, err
}
u, rem, err := naive.ParseShareLink(raw)
if err != nil {
if hysteria2.Detect(raw) {