Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMHSanaei <mc.sanaei@gmail.com>2023-02-09 22:18:06 +0300
committerMHSanaei <mc.sanaei@gmail.com>2023-02-09 22:18:06 +0300
commitb73e4173a3c1e69e02ad6b4e3b43e425e57a5be9 (patch)
treed95d2f5e903d97082e11eb9f9023c165b1bde388 /v2ui/v2ui.go
3x-ui
Diffstat (limited to 'v2ui/v2ui.go')
-rw-r--r--v2ui/v2ui.go51
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
+}