diff options
| author | MHSanaei <mc.sanaei@gmail.com> | 2023-02-09 22:18:06 +0300 |
|---|---|---|
| committer | MHSanaei <mc.sanaei@gmail.com> | 2023-02-09 22:18:06 +0300 |
| commit | b73e4173a3c1e69e02ad6b4e3b43e425e57a5be9 (patch) | |
| tree | d95d2f5e903d97082e11eb9f9023c165b1bde388 /v2ui/v2ui.go | |
3x-ui
Diffstat (limited to 'v2ui/v2ui.go')
| -rw-r--r-- | v2ui/v2ui.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/v2ui/v2ui.go b/v2ui/v2ui.go new file mode 100644 index 00000000..57d673cf --- /dev/null +++ b/v2ui/v2ui.go @@ -0,0 +1,51 @@ +package v2ui + +import ( + "fmt" + "x-ui/config" + "x-ui/database" + "x-ui/database/model" + "x-ui/util/common" + "x-ui/web/service" +) + +func MigrateFromV2UI(dbPath string) error { + err := initDB(dbPath) + if err != nil { + return common.NewError("init v2-ui database failed:", err) + } + err = database.InitDB(config.GetDBPath()) + if err != nil { + return common.NewError("init x-ui database failed:", err) + } + + v2Inbounds, err := getV2Inbounds() + if err != nil { + return common.NewError("get v2-ui inbounds failed:", err) + } + if len(v2Inbounds) == 0 { + fmt.Println("migrate v2-ui inbounds success: 0") + return nil + } + + userService := service.UserService{} + user, err := userService.GetFirstUser() + if err != nil { + return common.NewError("get x-ui user failed:", err) + } + + inbounds := make([]*model.Inbound, 0) + for _, v2inbound := range v2Inbounds { + inbounds = append(inbounds, v2inbound.ToInbound(user.Id)) + } + + inboundService := service.InboundService{} + err = inboundService.AddInbounds(inbounds) + if err != nil { + return common.NewError("add x-ui inbounds failed:", err) + } + + fmt.Println("migrate v2-ui inbounds success:", len(inbounds)) + + return nil +} |
