vendor!
This commit is contained in:
77
vendor/github.com/thehowl/go-osuapi/get_match.go
generated
vendored
Normal file
77
vendor/github.com/thehowl/go-osuapi/get_match.go
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
package osuapi
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"net/url"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// Match is a multiplayer match.
|
||||
type Match struct {
|
||||
Info MatchInfo `json:"match"`
|
||||
Games []MatchGame `json:"games"`
|
||||
}
|
||||
|
||||
// MatchInfo contains useful information about a Match.
|
||||
type MatchInfo struct {
|
||||
MatchID int `json:"match_id,string"`
|
||||
Name string `json:"name"`
|
||||
StartTime MySQLDate `json:"start_time"`
|
||||
EndTime *MySQLDate `json:"end_time"`
|
||||
}
|
||||
|
||||
// MatchGame is a single beatmap played in the Match.
|
||||
type MatchGame struct {
|
||||
GameID int `json:"game_id,string"`
|
||||
StartTime MySQLDate `json:"start_time"`
|
||||
EndTime *MySQLDate `json:"end_time"`
|
||||
BeatmapID int `json:"beatmap_id,string"`
|
||||
PlayMode Mode `json:"play_mode,string"`
|
||||
// Refer to the wiki for information about what the three things below
|
||||
// are. I personally think that this information wouldn't be that
|
||||
// necessary to most people, and what is written on the wiki could be
|
||||
// outdated, thus I deemed useless making an appropriate "enum" (like
|
||||
// I did for Genre, Language and that stuff.)
|
||||
// You really can say I love writing long comments.
|
||||
MatchType int `json:"match_type,string"`
|
||||
ScoringType int `json:"scoring_type,string"`
|
||||
TeamType int `json:"team_type,string"`
|
||||
Mods Mods `json:"mods,string"`
|
||||
Scores []MatchGameScore `json:"scores"`
|
||||
}
|
||||
|
||||
// MatchGameScore is a single score done by an user in a specific Game of a
|
||||
// Match. I agree, these descriptions are quite confusing.
|
||||
type MatchGameScore struct {
|
||||
Slot int `json:"slot,string"`
|
||||
Team int `json:"team,string"`
|
||||
UserID int `json:"user_id,string"`
|
||||
Score int64 `json:"score,string"`
|
||||
MaxCombo int `json:"maxcombo,string"`
|
||||
// There should be Rank here, but Rank is not actually used. (always 0)
|
||||
Count50 int `json:"count50,string"`
|
||||
Count100 int `json:"count100,string"`
|
||||
Count300 int `json:"count300,string"`
|
||||
CountMiss int `json:"countmiss,string"`
|
||||
CountGeki int `json:"countgeki,string"`
|
||||
CountKatu int `json:"countkatu,string"`
|
||||
// There should also be Perfect here, but that seems to also not be used. (always 0)
|
||||
Pass OsuBool `json:"pass"`
|
||||
}
|
||||
|
||||
// GetMatch makes a get_match request to the osu! API.
|
||||
func (c Client) GetMatch(matchID int) (*Match, error) {
|
||||
vals := url.Values{
|
||||
"mp": []string{strconv.Itoa(matchID)},
|
||||
}
|
||||
rawData, err := c.makerq("get_match", vals)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
match := Match{}
|
||||
err = json.Unmarshal(rawData, &match)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &match, nil
|
||||
}
|
Reference in New Issue
Block a user