mirror of
https://github.com/wyx2685/V2bX.git
synced 2025-01-22 09:58:14 -05:00
51 lines
1.4 KiB
Go
51 lines
1.4 KiB
Go
package xray
|
|
|
|
import (
|
|
"github.com/InazumaV/V2bX/api/panel"
|
|
"github.com/InazumaV/V2bX/common/format"
|
|
"github.com/xtls/xray-core/common/protocol"
|
|
"github.com/xtls/xray-core/common/serial"
|
|
"github.com/xtls/xray-core/infra/conf"
|
|
"github.com/xtls/xray-core/proxy/vless"
|
|
)
|
|
|
|
func buildVmessUsers(tag string, userInfo []panel.UserInfo) (users []*protocol.User) {
|
|
users = make([]*protocol.User, len(userInfo))
|
|
for i, user := range userInfo {
|
|
users[i] = buildVmessUser(tag, &user)
|
|
}
|
|
return users
|
|
}
|
|
|
|
func buildVmessUser(tag string, userInfo *panel.UserInfo) (user *protocol.User) {
|
|
vmessAccount := &conf.VMessAccount{
|
|
ID: userInfo.Uuid,
|
|
Security: "auto",
|
|
}
|
|
return &protocol.User{
|
|
Level: 0,
|
|
Email: format.UserTag(tag, userInfo.Uuid), // Uid: InboundTag|email
|
|
Account: serial.ToTypedMessage(vmessAccount.Build()),
|
|
}
|
|
}
|
|
|
|
func buildVlessUsers(tag string, userInfo []panel.UserInfo, flow string) (users []*protocol.User) {
|
|
users = make([]*protocol.User, len(userInfo))
|
|
for i := range userInfo {
|
|
users[i] = buildVlessUser(tag, &(userInfo)[i], flow)
|
|
}
|
|
return users
|
|
}
|
|
|
|
func buildVlessUser(tag string, userInfo *panel.UserInfo, flow string) (user *protocol.User) {
|
|
vlessAccount := &vless.Account{
|
|
Id: userInfo.Uuid,
|
|
}
|
|
vlessAccount.Flow = flow
|
|
return &protocol.User{
|
|
Level: 0,
|
|
Email: format.UserTag(tag, userInfo.Uuid),
|
|
Account: serial.ToTypedMessage(vlessAccount),
|
|
}
|
|
}
|