add ray2singbox

This commit is contained in:
Hiddify
2023-09-09 20:05:05 +00:00
parent 30cb888fa7
commit 28a7a9bf0e
3 changed files with 13 additions and 18 deletions

6
go.mod
View File

@@ -1,9 +1,9 @@
module github.com/hiddify/libcore
go 1.21.0
go 1.21.1
require (
github.com/er888kh/go-subconverter v0.0.0-00010101000000-000000000000
github.com/hiddify/ray2sing v0.0.0-20230909195431-42b108c5b52d
github.com/sagernet/gomobile v0.0.0-20230728014906-3de089147f59
github.com/sagernet/sing v0.2.10-0.20230908032232-b0849c43a600
github.com/sagernet/sing-box v1.4.1
@@ -32,7 +32,6 @@ require (
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/btree v1.1.2 // indirect
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
github.com/google/uuid v1.3.1 // indirect
github.com/hashicorp/yamux v0.1.1 // indirect
github.com/insomniacslk/dhcp v0.0.0-20230816195147-b3ca2534940d // indirect
github.com/josharian/native v1.1.0 // indirect
@@ -90,4 +89,3 @@ require (
replace github.com/sagernet/sing-box => github.com/hiddify/hiddify-sing-box v1.5.0-beta.6.0.20230909114124-dd5572ae3cd8
replace github.com/er888kh/go-subconverter => github.com/hiddify/go-subconverter v0.0.0-20230909135016-c8b06954ff50

6
go.sum
View File

@@ -51,14 +51,12 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/uuid v1.3.1 h1:KjJaJ9iWZ3jOFZIf1Lqf4laDRCasjl0BCmnEGxkdLb4=
github.com/google/uuid v1.3.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ=
github.com/hiddify/go-subconverter v0.0.0-20230909135016-c8b06954ff50 h1:ifd/vP04+WFSi5tRl+SH89+dFJnW6QFABg5Xzof5z4Y=
github.com/hiddify/go-subconverter v0.0.0-20230909135016-c8b06954ff50/go.mod h1:YWhhWtzWc5blZCe40kAYQHlw1H4ra6kTmpcJDM04WQk=
github.com/hiddify/hiddify-sing-box v1.5.0-beta.6.0.20230909114124-dd5572ae3cd8 h1:7EBpMuQ70lPzlGfbkw1z923Gyjz797i9JBCtFxg1tt4=
github.com/hiddify/hiddify-sing-box v1.5.0-beta.6.0.20230909114124-dd5572ae3cd8/go.mod h1:x8h2FofmD+PLXqM3eScy+/ActJCByOHuygW5G20P1jU=
github.com/hiddify/ray2sing v0.0.0-20230909195431-42b108c5b52d h1:tLzET1LNWkYR8JcZv78P6bW+G9HAbiUciREUEpya3zs=
github.com/hiddify/ray2sing v0.0.0-20230909195431-42b108c5b52d/go.mod h1:5SO2o9/aKbMuqjrByt/ztCCZwbHMZLdgR4jNI4zg6Jg=
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
github.com/insomniacslk/dhcp v0.0.0-20230816195147-b3ca2534940d h1:Ka64cclWedOkGzm9M2/XYuwJUdmWRUozmsxW0PyKA3A=
github.com/insomniacslk/dhcp v0.0.0-20230816195147-b3ca2534940d/go.mod h1:7474bZ1YNCvarT6WFKie4kEET6J0KYRDC4XJqqXzQW4=

View File

@@ -5,7 +5,7 @@ import (
"fmt"
"os"
"github.com/er888kh/go-subconverter/converter"
"github.com/hiddify/ray2sing/ray2sing"
"github.com/sagernet/sing-box/experimental/libbox"
"github.com/xmdhs/clash2singbox/convert"
"github.com/xmdhs/clash2singbox/model/clash"
@@ -20,15 +20,15 @@ func ParseConfig(path string) error {
if err != nil {
return err
}
clash_conf, err := parseV2rayFormat(content)
if err == nil {
content = clash_conf
}
config, err := parseClash(content)
config, err := parseV2rayFormat(content)
if err != nil {
config = content
}
config, err = parseClash(content)
if err != nil {
config = content
}
err = libbox.CheckConfig(string(config))
if err != nil {
return err
@@ -40,13 +40,12 @@ func ParseConfig(path string) error {
return nil
}
func parseV2rayFormat(content []byte) ([]byte, error) {
clash_conf, err := converter.GenerateProxies(string(content), "meta")
singconf, err := ray2sing.Ray2Singbox(string(content))
if err != nil {
fmt.Printf("error: %v\n", err)
return nil, err
}
fmt.Printf("v2ray to clash: %v\n", clash_conf)
return []byte(clash_conf), nil
return []byte(singconf), nil
}
func parseClash(content []byte) ([]byte, error) {
clashConfig := clash.Clash{}