mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-03-01 01:20:49 +03:00
52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
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
|
|
}
|