135 lines
3.7 KiB
Go
135 lines
3.7 KiB
Go
package halo
|
|
|
|
import (
|
|
"fmt"
|
|
"net/url"
|
|
)
|
|
|
|
func EventsForMatch(baseurl, title, matchid string) []byte {
|
|
verifyValidID(matchid, "Match ID")
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/matches/%s/events", baseurl, title, matchid))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func MatchesForPlayer(baseurl, title, player, modes string, start, count int) []byte {
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/players/%s/matches", baseurl, title, player))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
|
|
if modes != "" {
|
|
q.Set("modes", modes)
|
|
}
|
|
if start != 0 {
|
|
q.Set("start", string(start))
|
|
}
|
|
if count != 0 {
|
|
q.Set("count", string(count))
|
|
}
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func PlayerLeaderboard(baseurl, title, seasonid, playlistid string, count int) []byte {
|
|
verifyValidID(playlistid, "Playlist ID")
|
|
verifyValidID(seasonid, "Season ID")
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/player-leaderboards/csr/%s/%s", baseurl, title, seasonid, playlistid))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
|
|
if count != 0 {
|
|
q.Set("count", string(count))
|
|
}
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func CarnageReportArena(baseurl, title, matchid string) []byte {
|
|
verifyValidID(matchid, "Match ID")
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/arena/matches/%s", baseurl, title, matchid))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func CarnageReportCampaign(baseurl, title, matchid string) []byte {
|
|
verifyValidID(matchid, "Match ID")
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/campaign/matches/%s", baseurl, title, matchid))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func CarnageReportCustom(baseurl, title, matchid string) []byte {
|
|
verifyValidID(matchid, "Match ID")
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/custom/matches/%s", baseurl, title, matchid))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func CarnageReportWarzone(baseurl, title, matchid string) []byte {
|
|
verifyValidID(matchid, "Match ID")
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/warzone/matches/%s", baseurl, title, matchid))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func ServiceRecordArena(baseurl, title, players, seasonid string) []byte {
|
|
verifyValidID(seasonid, "Season ID")
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/servicerecords/arena", baseurl, title))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
q.Set("players", players)
|
|
if seasonid != "" {
|
|
q.Set("seasonId", seasonid)
|
|
}
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func ServiceRecordCampaign(baseurl, title, players string) []byte {
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/servicerecords/campaign", baseurl, title))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
q.Set("players", players)
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func ServiceRecordCustom(baseurl, title, players string) []byte {
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/servicerecords/custom", baseurl, title))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
q.Set("players", players)
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|
|
|
|
func ServiceRecordWarzone(baseurl, title, players string) []byte {
|
|
url, err := url.Parse(fmt.Sprintf("%s/stats/%s/servicerecords/warzone", baseurl, title))
|
|
checkErr(err)
|
|
q := url.Query()
|
|
q.Set("players", players)
|
|
url.RawQuery = q.Encode()
|
|
response := sendRequest(url.String())
|
|
return response
|
|
}
|