improve converting link to json

This commit is contained in:
Alireza Ahmadi
2026-02-13 21:49:43 +01:00
parent bdc25bb3d6
commit 85d42ee91c
+31 -54
View File
@@ -200,17 +200,9 @@ func hy(u *url.URL, i int) (*map[string]interface{}, string, error) {
port, _ = strconv.Atoi(portStr) port, _ = strconv.Atoi(portStr)
} }
tls := map[string]interface{}{ security := query.Get("security")
"enabled": true, if len(security) == 0 {
"server_name": query.Get("peer"), security = "tls"
}
alpn := query.Get("alpn")
insecure := query.Get("insecure")
if len(alpn) > 0 {
tls["alpn"] = strings.Split(alpn, ",")
}
if insecure == "1" || insecure == "true" {
tls["insecure"] = true
} }
tag := u.Fragment tag := u.Fragment
@@ -224,7 +216,7 @@ func hy(u *url.URL, i int) (*map[string]interface{}, string, error) {
"server_port": port, "server_port": port,
"obfs": query.Get("obfsParam"), "obfs": query.Get("obfsParam"),
"auth_str": query.Get("auth"), "auth_str": query.Get("auth"),
"tls": tls, "tls": getTls(security, &query),
} }
down, _ := strconv.Atoi(query.Get("downmbps")) down, _ := strconv.Atoi(query.Get("downmbps"))
up, _ := strconv.Atoi(query.Get("upmbps")) up, _ := strconv.Atoi(query.Get("upmbps"))
@@ -253,17 +245,9 @@ func hy2(u *url.URL, i int) (*map[string]interface{}, string, error) {
port, _ = strconv.Atoi(portStr) port, _ = strconv.Atoi(portStr)
} }
tls := map[string]interface{}{ security := query.Get("security")
"enabled": true, if len(security) == 0 {
"server_name": query.Get("sni"), security = "tls"
}
alpn := query.Get("alpn")
insecure := query.Get("insecure")
if len(alpn) > 0 {
tls["alpn"] = strings.Split(alpn, ",")
}
if insecure == "1" || insecure == "true" {
tls["insecure"] = true
} }
tag := u.Fragment tag := u.Fragment
@@ -276,11 +260,13 @@ func hy2(u *url.URL, i int) (*map[string]interface{}, string, error) {
"server": host, "server": host,
"server_port": port, "server_port": port,
"password": u.User.Username(), "password": u.User.Username(),
"tls": tls, "tls": getTls(security, &query),
} }
down, _ := strconv.Atoi(query.Get("downmbps")) down, _ := strconv.Atoi(query.Get("downmbps"))
up, _ := strconv.Atoi(query.Get("upmbps")) up, _ := strconv.Atoi(query.Get("upmbps"))
obfs := query.Get("obfs") obfs := query.Get("obfs")
mport := query.Get("mport")
fastopen := query.Get("fastopen")
if down > 0 { if down > 0 {
hy2["down_mbps"] = down hy2["down_mbps"] = down
} }
@@ -293,6 +279,12 @@ func hy2(u *url.URL, i int) (*map[string]interface{}, string, error) {
"password": query.Get("obfs-password"), "password": query.Get("obfs-password"),
} }
} }
if len(mport) > 0 {
hy2["server_ports"] = strings.Split(mport, ",")
}
if fastopen == "1" || fastopen == "true" {
hy2["fastopen"] = true
}
return &hy2, tag, nil return &hy2, tag, nil
} }
@@ -304,17 +296,9 @@ func anytls(u *url.URL, i int) (*map[string]interface{}, string, error) {
port, _ = strconv.Atoi(portStr) port, _ = strconv.Atoi(portStr)
} }
tls := map[string]interface{}{ security := query.Get("security")
"enabled": true, if len(security) == 0 {
"server_name": query.Get("sni"), security = "tls"
}
alpn := query.Get("alpn")
insecure := query.Get("insecure")
if len(alpn) > 0 {
tls["alpn"] = strings.Split(alpn, ",")
}
if insecure == "1" || insecure == "true" {
tls["insecure"] = true
} }
tag := u.Fragment tag := u.Fragment
@@ -327,7 +311,7 @@ func anytls(u *url.URL, i int) (*map[string]interface{}, string, error) {
"server": host, "server": host,
"server_port": port, "server_port": port,
"password": u.User.Username(), "password": u.User.Username(),
"tls": tls, "tls": getTls(security, &query),
} }
return &anytls, tag, nil return &anytls, tag, nil
} }
@@ -340,21 +324,9 @@ func tuic(u *url.URL, i int) (*map[string]interface{}, string, error) {
port, _ = strconv.Atoi(portStr) port, _ = strconv.Atoi(portStr)
} }
tls := map[string]interface{}{ security := query.Get("security")
"enabled": true, if len(security) == 0 {
"server_name": query.Get("sni"), security = "tls"
}
alpn := query.Get("alpn")
insecure := query.Get("allow_insecure")
disable_sni := query.Get("disable_sni")
if len(alpn) > 0 {
tls["alpn"] = strings.Split(alpn, ",")
}
if insecure == "1" || insecure == "true" {
tls["insecure"] = true
}
if disable_sni == "1" || disable_sni == "true" {
tls["disable_sni"] = true
} }
tag := u.Fragment tag := u.Fragment
@@ -371,7 +343,7 @@ func tuic(u *url.URL, i int) (*map[string]interface{}, string, error) {
"password": password, "password": password,
"congestion_control": query.Get("congestion_control"), "congestion_control": query.Get("congestion_control"),
"udp_relay_mode": query.Get("udp_relay_mode"), "udp_relay_mode": query.Get("udp_relay_mode"),
"tls": tls, "tls": getTls(security, &query),
} }
return &tuic, tag, nil return &tuic, tag, nil
} }
@@ -480,9 +452,11 @@ func getTls(security string, q *url.Values) map[string]interface{} {
tls := map[string]interface{}{} tls := map[string]interface{}{}
tls_fp := q.Get("fp") tls_fp := q.Get("fp")
tls_sni := q.Get("sni") tls_sni := q.Get("sni")
tls_insecure := q.Get("allowInsecure") tls_allow_insecure := q.Get("allowInsecure")
tls_insecure := q.Get("insecure")
tls_alpn := q.Get("alpn") tls_alpn := q.Get("alpn")
tls_ech := q.Get("ech") tls_ech := q.Get("ech")
disable_sni := q.Get("disable_sni")
switch security { switch security {
case "tls": case "tls":
tls["enabled"] = true tls["enabled"] = true
@@ -500,7 +474,7 @@ func getTls(security string, q *url.Values) map[string]interface{} {
if len(tls_alpn) > 0 { if len(tls_alpn) > 0 {
tls["alpn"] = strings.Split(tls_alpn, ",") tls["alpn"] = strings.Split(tls_alpn, ",")
} }
if tls_insecure == "1" || tls_insecure == "true" { if tls_insecure == "1" || tls_insecure == "true" || tls_allow_insecure == "1" || tls_allow_insecure == "true" {
tls["insecure"] = true tls["insecure"] = true
} }
if len(tls_fp) > 0 { if len(tls_fp) > 0 {
@@ -517,5 +491,8 @@ func getTls(security string, q *url.Values) map[string]interface{} {
}, },
} }
} }
if disable_sni == "1" || disable_sni == "true" {
tls["disable_sni"] = true
}
return tls return tls
} }