From 040e19ee8791d2bcca467da60f2c981be2c107fd Mon Sep 17 00:00:00 2001 From: Senis John Date: Thu, 15 Dec 2022 19:48:13 +0800 Subject: [PATCH] fix: Priority local speed limit --- api/newV2board/v2board.go | 18 +++++++++++++----- api/proxypanel/proxypanel.go | 2 +- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/api/newV2board/v2board.go b/api/newV2board/v2board.go index c6870cf..ab9610f 100644 --- a/api/newV2board/v2board.go +++ b/api/newV2board/v2board.go @@ -208,11 +208,19 @@ func (c *APIClient) GetUserList() (UserList *[]api.UserInfo, err error) { userList := make([]api.UserInfo, numOfUsers) for i := 0; i < numOfUsers; i++ { user := response.Get("users").GetIndex(i) - u := api.UserInfo{} - u.UID = user.Get("id").MustInt() - u.SpeedLimit = uint64(user.Get("speed_limit").MustInt() * 1000000 / 8) - u.DeviceLimit = c.DeviceLimit // todo waiting v2board send configuration - u.UUID = user.Get("uuid").MustString() + u := api.UserInfo{ + UID: user.Get("id").MustInt(), + UUID: user.Get("uuid").MustString(), + } + + // Support 1.7.1 speed limit + if c.SpeedLimit > 0 { + u.SpeedLimit = uint64(c.SpeedLimit * 1000000 / 8) + } else { + u.SpeedLimit = user.Get("speed_limit").MustUint64() * 1000000 / 8 + } + + u.DeviceLimit = c.DeviceLimit // todo waiting v2board send configuration u.Email = u.UUID + "@v2board.user" if c.NodeType == "Shadowsocks" { u.Passwd = u.UUID diff --git a/api/proxypanel/proxypanel.go b/api/proxypanel/proxypanel.go index 026d88a..8a32fd4 100644 --- a/api/proxypanel/proxypanel.go +++ b/api/proxypanel/proxypanel.go @@ -592,7 +592,7 @@ func (c *APIClient) ParseSSUserListResponse(userInfoResponse *json.RawMessage) ( if c.SpeedLimit > 0 { speedlimit = uint64((c.SpeedLimit * 1000000) / 8) } else { - speedlimit = uint64((user.SpeedLimit * 1000000) / 8) + speedlimit = user.SpeedLimit * 1000000 / 8 } userList[i] = api.UserInfo{ UID: user.UID,