Players parsing fixes and short info done.

Fixed players parsing in server's response, now we can show 0 players.

Showr info (kinda) completed, general server info, players and vars
are here. Some work on sorting is in ToDo.
This commit is contained in:
2016-10-06 21:34:14 +05:00
parent 5ba0664964
commit 8cfbca284e
3 changed files with 64 additions and 16 deletions

View File

@@ -11,13 +11,10 @@ package ioq3dataparser
import (
// stdlib
"fmt"
"strings"
)
func ParseInfoToMap(data string) map[string]string {
fmt.Println(data)
parsed_data := make(map[string]string)
srv_config := strings.Split(data, "\\")
@@ -25,10 +22,27 @@ func ParseInfoToMap(data string) map[string]string {
// Parse server configuration into passed server's datamodel.
for i := 0; i < len(srv_config[1:]); i = i + 2 {
parsed_data[srv_config[i]] = srv_config[i + 1]
fmt.Println(srv_config[i] + " => " + srv_config[i + 1])
}
fmt.Println(parsed_data)
return parsed_data
}
func ParsePlayersInfoToMap(data string) map[string]map[string]string {
parsed_data := make(map[string]map[string]string)
// Structure: frags|ping|nick
raw_data := strings.Split(data, "\\")
for i := range raw_data {
raw_player_data := strings.Split(raw_data[i], " ")
player_data := make(map[string]string)
if len(raw_player_data) > 1 {
nickname := strings.Join(raw_player_data[2:], " ")
player_data["nick"] = string([]byte(nickname)[1:len(nickname)-1])
player_data["ping"] = raw_player_data[1]
player_data["frags"] = raw_player_data[0]
parsed_data[player_data["nick"]] = player_data
}
}
return parsed_data
}