Skip to content
This repository was archived by the owner on Jan 30, 2024. It is now read-only.

Commit 666ab13

Browse files
committed
total players function- need json arr mixed parser
1 parent 95ecb60 commit 666ab13

File tree

4 files changed

+68
-1
lines changed

4 files changed

+68
-1
lines changed

models/util.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package ttRequests_models
2+
3+
type BaseTotalPlayer struct {
4+
VrpId uint32 `json:"vrpId"`
5+
Name string `json:"name"`
6+
ServerId uint8 `json:"serverId"`
7+
DiscordUrl string `json:"discordUrl"`
8+
IsStaff bool `json:"isStaff"`
9+
IsDonor bool `json:"isDonor"`
10+
Job string `json:"job"`
11+
}

models/widgetplayers.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ type widgetPlayersDxp []interface{}
2828

2929
type widgetPlayersPlayers []widgetPlayersPlayer
3030

31-
// [string, uint16 uint32, string, bool, string, bool]
31+
// [string, uint16 uint32, string|false, bool, string, bool]
3232
//
3333
// [Name, Src, VrpId, DiscordAvatar, IsStaff, Job, IsDonor]
3434
type widgetPlayersPlayer []interface{}

ttRequests_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,14 @@ func TestSingleSpecServRequest(t *testing.T) {
3030
t.Error(err)
3131
}
3232
}
33+
34+
func TestSinglePlayersTotal(t *testing.T) {
35+
checkInit()
36+
data, err := GetTotalPlayers()
37+
if err != nil {
38+
t.Error(err)
39+
}
40+
if data == nil {
41+
t.Error("Expected data to be non-nil")
42+
}
43+
}

util.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package ttRequests
2+
3+
import (
4+
"errors"
5+
"reflect"
6+
7+
models "github.com/Elfshot/tt-api-wrapper/models"
8+
)
9+
10+
func GetTotalPlayers() ([]models.BaseTotalPlayer, error) {
11+
var newPlayers []models.BaseTotalPlayer
12+
13+
for i := uint8(1); i <= uint8(len(servers)); i++ {
14+
getFailCount := 0
15+
res, err := Get_WidgetPlayers(i)
16+
if err != nil {
17+
getFailCount++
18+
if getFailCount >= len(servers) {
19+
return nil, errors.New("All get_players failed in GetTotalPlayers")
20+
}
21+
continue
22+
}
23+
players := res.Players
24+
25+
for ii := 0; ii < len(players); ii++ {
26+
player := players[ii]
27+
vrp := player[2].(float64)
28+
if reflect.TypeOf(player[3]).Kind() == reflect.Bool {
29+
player[3] = ""
30+
}
31+
32+
newPlayer := models.BaseTotalPlayer{
33+
Name: player[0].(string),
34+
VrpId: uint32(vrp),
35+
DiscordUrl: player[3].(string),
36+
IsStaff: player[4].(bool),
37+
IsDonor: player[6].(bool),
38+
Job: player[5].(string),
39+
ServerId: i,
40+
}
41+
newPlayers = append(newPlayers, newPlayer)
42+
}
43+
}
44+
return newPlayers, nil
45+
}

0 commit comments

Comments
 (0)