forked from TF2Stadium/Helen
/
whitelist.go
50 lines (39 loc) · 962 Bytes
/
whitelist.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package helpers
import (
"encoding/xml"
"io/ioutil"
"github.com/Sirupsen/logrus"
)
type GroupXML struct {
//XMLName xml.Name `xml:"memberList"`
//GroupID uint64 `xml:"groupID64"`
Members []string `xml:"members>steamID64"`
}
// Get Steam IDs of the members of a given steam group
func GetGroupMembers(url string) ([]string, error) {
var groupXML GroupXML
resp, err := HTTPClient.Get(url)
if err != nil {
logrus.Error(err.Error())
return []string{}, err
}
bytes, err := ioutil.ReadAll(resp.Body)
if err != nil {
logrus.Error(err.Error())
return []string{}, err
}
// Logger.Debug(string(bytes))
xml.Unmarshal(bytes, &groupXML)
//Logger.Debug("%v", groupXML.Members)
return groupXML.Members, nil
}
func IsWhitelisted(steamid, url string) bool {
whitelist, _ := GetGroupMembers(url)
for _, steamID := range whitelist {
//Logger.Debug("%s %s", steamid, steamID)
if steamid == steamID {
return true
}
}
return false
}