update
This commit is contained in:
@@ -142,19 +142,29 @@ func ParseVless(line string, index int) model.ProxyNode {
|
||||
}
|
||||
|
||||
node := map[string]any{
|
||||
"name": fragmentName(u, fmt.Sprintf("vless-%d", index+1)),
|
||||
"type": "vless",
|
||||
"server": u.Hostname(),
|
||||
"port": portFromURL(u, 443),
|
||||
"uuid": userInfo(u),
|
||||
"udp": true,
|
||||
"flow": params.Get("flow"),
|
||||
"network": orDefault(params.Get("type"), "tcp"),
|
||||
"tls": security != "none",
|
||||
"name": fragmentName(u, fmt.Sprintf("vless-%d", index+1)),
|
||||
"type": "vless",
|
||||
"server": u.Hostname(),
|
||||
"port": portFromURL(u, 443),
|
||||
"uuid": userInfo(u),
|
||||
"udp": true,
|
||||
"flow": params.Get("flow"),
|
||||
"network": orDefault(params.Get("type"), "tcp"),
|
||||
"tls": security != "none",
|
||||
"servername": params.Get("sni"),
|
||||
"encryption": orDefault(params.Get("encryption"), "none"),
|
||||
"encryption": orDefault(params.Get("encryption"), "none"),
|
||||
"client-fingerprint": orDefault(params.Get("fp"), "chrome"),
|
||||
}
|
||||
if node["network"] == "ws" {
|
||||
wsOpts := map[string]any{
|
||||
"path": orDefault(params.Get("path"), "/"),
|
||||
}
|
||||
host := params.Get("host")
|
||||
if host != "" {
|
||||
wsOpts["headers"] = map[string]any{"Host": host}
|
||||
}
|
||||
node["ws-opts"] = wsOpts
|
||||
}
|
||||
if publicKey != "" {
|
||||
node["reality-opts"] = StripUndefined(map[string]any{
|
||||
"public-key": publicKey,
|
||||
@@ -251,17 +261,17 @@ func ParseVmess(line string, index int) model.ProxyNode {
|
||||
|
||||
port := toNumberOrUndefined(payload["port"])
|
||||
node := map[string]any{
|
||||
"name": orDefault(toString(payload["ps"]), fmt.Sprintf("vmess-%d", index+1)),
|
||||
"type": "vmess",
|
||||
"server": toString(payload["add"]),
|
||||
"port": port,
|
||||
"uuid": toString(payload["id"]),
|
||||
"alterId": toNumberOrUndefined(payload["aid"]),
|
||||
"cipher": orDefault(toString(payload["scy"]), "auto"),
|
||||
"tls": toString(payload["tls"]) == "tls",
|
||||
"name": orDefault(toString(payload["ps"]), fmt.Sprintf("vmess-%d", index+1)),
|
||||
"type": "vmess",
|
||||
"server": toString(payload["add"]),
|
||||
"port": port,
|
||||
"uuid": toString(payload["id"]),
|
||||
"alterId": toNumberOrUndefined(payload["aid"]),
|
||||
"cipher": orDefault(toString(payload["scy"]), "auto"),
|
||||
"tls": toString(payload["tls"]) == "tls",
|
||||
"servername": firstNonEmpty(toString(payload["sni"]), toString(payload["host"])),
|
||||
"network": orDefault(toString(payload["net"]), "tcp"),
|
||||
"udp": true,
|
||||
"network": orDefault(toString(payload["net"]), "tcp"),
|
||||
"udp": true,
|
||||
}
|
||||
if toString(payload["net"]) == "ws" {
|
||||
wsOpts := map[string]any{
|
||||
@@ -415,15 +425,15 @@ func ParseShadowsocksR(line string, index int) model.ProxyNode {
|
||||
}
|
||||
|
||||
node := map[string]any{
|
||||
"name": name,
|
||||
"type": "ssr",
|
||||
"server": server,
|
||||
"port": port,
|
||||
"cipher": method,
|
||||
"name": name,
|
||||
"type": "ssr",
|
||||
"server": server,
|
||||
"port": port,
|
||||
"cipher": method,
|
||||
"password": password,
|
||||
"protocol": protocol,
|
||||
"obfs": obfs,
|
||||
"udp": true,
|
||||
"obfs": obfs,
|
||||
"udp": true,
|
||||
}
|
||||
|
||||
if pp := query.Get("protoparam"); pp != "" {
|
||||
@@ -490,18 +500,18 @@ func ParseHttpProxy(line string, index int) model.ProxyNode {
|
||||
func ParseTuic(line string, index int) model.ProxyNode {
|
||||
u := parseURL(line)
|
||||
return StripUndefined(map[string]any{
|
||||
"name": fragmentName(u, fmt.Sprintf("tuic-%d", index+1)),
|
||||
"type": "tuic",
|
||||
"server": u.Hostname(),
|
||||
"port": portFromURL(u, 443),
|
||||
"uuid": userInfo(u),
|
||||
"password": userPassword(u),
|
||||
"sni": paramGet(u, "sni"),
|
||||
"alpn": CommaList(paramGet(u, "alpn")),
|
||||
"skip-cert-verify": BoolParam(firstNonEmpty(paramGet(u, "allow_insecure"), paramGet(u, "insecure"))),
|
||||
"disable-sni": BoolParam(firstNonEmpty(paramGet(u, "disable_sni"), paramGet(u, "disable-sni"))),
|
||||
"reduce-rtt": BoolParam(firstNonEmpty(paramGet(u, "reduce_rtt"), paramGet(u, "reduce-rtt"))),
|
||||
"udp-relay-mode": firstNonEmpty(paramGet(u, "udp_relay_mode"), paramGet(u, "udp-relay-mode")),
|
||||
"name": fragmentName(u, fmt.Sprintf("tuic-%d", index+1)),
|
||||
"type": "tuic",
|
||||
"server": u.Hostname(),
|
||||
"port": portFromURL(u, 443),
|
||||
"uuid": userInfo(u),
|
||||
"password": userPassword(u),
|
||||
"sni": paramGet(u, "sni"),
|
||||
"alpn": CommaList(paramGet(u, "alpn")),
|
||||
"skip-cert-verify": BoolParam(firstNonEmpty(paramGet(u, "allow_insecure"), paramGet(u, "insecure"))),
|
||||
"disable-sni": BoolParam(firstNonEmpty(paramGet(u, "disable_sni"), paramGet(u, "disable-sni"))),
|
||||
"reduce-rtt": BoolParam(firstNonEmpty(paramGet(u, "reduce_rtt"), paramGet(u, "reduce-rtt"))),
|
||||
"udp-relay-mode": firstNonEmpty(paramGet(u, "udp_relay_mode"), paramGet(u, "udp-relay-mode")),
|
||||
"congestion-controller": firstNonEmpty(paramGet(u, "congestion_control"), paramGet(u, "congestion-controller")),
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user