structs

package
v3.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 2, 2021 License: MIT Imports: 2 Imported by: 1

Documentation

Overview

Package structs contains the structs AbiosGaming/sdk uses to unmarshal JSON.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessToken

type AccessToken struct {
	AccessToken string `json:"access_token"`
	TokenType   string `json:"token_type"`
	ExpiresIn   int64  `json:"expires_in"`
}

AccessToken holds information about an access token.

type BombEvent added in v3.1.0

type BombEvent struct {
	Type       string `json:"type"`
	PlayerId   int64  `json:"player_id"`
	RoundClock int64  `json:"round_clock"`
	Pos        Pos    `json:"pos"`
}

BombEvent hold data about bomb event in CS:GO round

type BracketPosition

type BracketPosition struct {
	Part    string  `json:"part,omitempty"`
	Col     int64   `json:"col"`
	Offset  int64   `json:"offset"`
	Seeding Seeding `json:"seeding,omitempty"`
}

BracketPosition represents a Series position in a Substages bracket.

type Caster

type Caster struct {
	Id      int64   `json:"id,omitempty"`
	Name    string  `json:"name,omitempty"`
	Type    *int64  `json:"type,omitempty"`
	Url     string  `json:"url,omitempty"`
	Primary bool    `json:"primary,omitempty"`
	Stream  *Stream `json:"stream,omitempty"`
	Country Country `json:"country,omitempty"`
}

Caster represents an individual shoutcaster, casting a Series.

type Champion added in v3.0.1

type Champion struct {
	Name       string `json:"name"`
	ExternalId int64  `json:"external_id"`
	Images     struct {
		Default   string `json:"default"`
		Thumbnail string `json:"thumbnail"`
	} `json:"images"`
}

type Country

type Country struct {
	Name      string        `json:"name,omitempty"`
	ShortName string        `json:"short_name,omitempty"`
	Images    CountryImages `json:"images,omitempty"`
}

Country hold information about a country, nationality or language associated with a resource.

type CountryImages

type CountryImages struct {
	Default   string `json:"default,omitempty"`
	Thumbnail string `json:"thumbnail,omitempty"`
}

CountryImages represents the different keys for images a Country can contain

type CsMatchSummary

type CsMatchSummary struct {
	Home        int64 `json:"home"`
	Away        int64 `json:"away"`
	MatchLength int64 `json:"match_length"`
	ScoreBoard  struct {
		Home []CsScoreBoardEntry `json:"home"`
		Away []CsScoreBoardEntry `json:"away"`
	} `json:"scoreboard"`
	Rounds []Round `json:"rounds"`
}

CsMatchSummary is the summarization of a CS:GO match.

type CsPlayerPerformance

type CsPlayerPerformance struct {
	Kills       float64 `json:"kills"`
	Assists     float64 `json:"assists"`
	Deaths      float64 `json:"deaths"`
	DamageGiven float64 `json:"dmg_given"`
	DamageTaken float64 `json:"dmg_taken"`
	History     int64   `json:"history"`
	Accuracy    struct {
		General  float64 `json:"general"`
		Headshot float64 `json:"head_shot"`
	} `json:"accuracy"`
}

CsPlayerPerformance holds some general data about a players performance. This struct is re-used for different levels data (e.g per_map and over_all).

type CsPlayerStats

type CsPlayerStats struct {
	Overall struct {
		CsPlayerPerformance
		Plants  float64 `json:"plants"`
		Defuses float64 `json:"defuses"`
	} `json:"over_all"`
	PerMap []struct {
		Map    Map `json:"map"`
		CtSide struct {
			CsPlayerPerformance
			Defuses float64 `json:"defuses"`
		} `json:"ct_side"`
		TSide struct {
			CsPlayerPerformance
			Plants float64 `json:"plants"`
		} `json:"t_side"`
		Overall struct {
			CsPlayerPerformance
		} `json:"over_all"`
	} `json:"per_map"`
	PerWeapon []struct {
		Weapon        Weapon `json:"weapon"`
		DmgGivenRound int64  `json:"dmg_given_round"`
		Accuracy      struct {
			General  float64 `json:"general"`
			Headshot float64 `json:"head_shot"`
		} `json:"accuracy"`
		History int64 `json:"history"`
	} `json:"per_weapon"`
}

CsPlayerByPlayStats holds play by play stats for cs players

type CsScoreBoardEntry

type CsScoreBoardEntry struct {
	PlayerId int64   `json:"player_id"`
	Kills    int64   `json:"kills"`
	Assists  int64   `json:"assists"`
	Deaths   int64   `json:"deaths"`
	Adr      float64 `json:"adr"`
}

CsScoreBoardEntry reflects a CS:GO scoreboard entry.

type CsSeriesSummary

type CsSeriesSummary struct {
	Scoreboard map[string][]struct {
		PlayerID      int64   `json:"player_id"`
		MatchesPlayed int64   `json:"matches_played"`
		Kills         int64   `json:"kills"`
		Deaths        int64   `json:"deaths"`
		Assists       int64   `json:"assists"`
		Adr           float64 `json:"adr"`
	}
}

type CsTeamCommonStats

type CsTeamCommonStats struct {
	NrMatches      int64   `json:"nr_matches"`
	CtRounds       int64   `json:"ct_rounds"`
	CtWins         int64   `json:"ct_wins"`
	TRounds        int64   `json:"t_rounds"`
	TWins          int64   `json:"t_wins"`
	PistolRounds   int64   `json:"pistol_rounds"`
	PistolWins     int64   `json:"pistol_wins"`
	FirstKillRate  float64 `json:"first_kill_rate"`
	FirstDeathRate float64 `json:"first_death_rate"`
}

CsTeamCommonStats holds information common to multiple JSON objects.

type CsTeamStats

type CsTeamStats struct {
	Totals struct {
		Kills  int64 `json:"kills"`
		Deaths int64 `json:"deaths"`
		CsTeamCommonStats
	} `json:"totals"`
	Maps []struct {
		Map Map `json:"map"`
		CsTeamCommonStats
	} `json:"maps"`
	Marksman []struct {
		PlayerId int64   `json:"player_id"`
		Adr      float64 `json:"adr"`
		Weapon   Weapon  `json:"weapon"`
	} `json:"marksman"`
	TopStats struct {
		Kills struct {
			PlayerAgainst
			Kills int64 `json:"kills"`
		} `json:"kills"`
		Adr struct {
			PlayerAgainst
			Adr float64 `json:"adr"`
		} `json:"adr"`
		Assists struct {
			PlayerAgainst
			Assists int64 `json:"assists"`
		} `json:"assists"`
		Plants struct {
			PlayerAgainst
			Plants int64 `json:"plants"`
		} `json:"plants"`
		Defuses struct {
			PlayerAgainst
			Defuses int64 `json:"defuses"`
		} `json:"defuses"`
	} `json:"top_stats"`
	TopMatches struct {
		BiggestLoss struct {
			TeamAgainst
			Rounds int64 `json:"rounds"`
		} `json:"biggest_loss"`
		BiggestWin struct {
			TeamAgainst
			Rounds int64 `json:"rounds"`
		} `json:"biggest_win"`
		MostRounds struct {
			TeamAgainst
			Rounds int64 `json:"rounds"`
		} `json:"most_rounds"`
	} `json:"top_matches"`
}

CsTeamStats holds data about a team play by play stats for cs

type DefaultRoster

type DefaultRoster struct {
	From   string  `json:"from,omitempty"`
	To     *string `json:"to,omitempty"`
	Roster Roster  `json:"roster,omitempty"`
}

DefaultRoster represents the time period(s) when a Roster has been a Team's main roster or line-up.

type DotaDmg

type DotaDmg struct {
	HpRemoval   int64 `json:"hp_removal"`
	MagicalDmg  int64 `json:"magical_dmg"`
	PhysicalDmg int64 `json:"physical_dmg"`
	PureDmg     int64 `json:"pure_dmg"`
}

DotaDmg is a collection of different types of damages given/taken in dota.

type DotaDraftEvent added in v3.1.0

type DotaDraftEvent struct {
	Order    int64  `json:"order"`
	Type     string `json:"type"`
	RosterId int64  `json:"roster_id"`
	Hero     Hero   `json:"hero"`
}

DotaDraftEvent is information about event of draft phase of Dota match.

type DotaFirstBloodEvent added in v3.1.0

type DotaFirstBloodEvent struct {
	Killer int64 `json:"killer"`
	Victim int64 `json:"victim"`
	AtTime int64 `json:"at_time"`
}

DotaFirstBloodEvent is a information about first blood in Dota match.

type DotaHeroWithWins

type DotaHeroWithWins struct {
	Amount int64 `json:"amount"`
	Wins   int64 `json:"wins"`
	Hero   Hero  `json:"hero"`
}

DotaHeroWithAmount holds information about a Dota Hero and an integer representing and amount (e.g amount of times picked).

type DotaItem

type DotaItem struct {
	Image struct {
		Default   string `json:"default"`
		Thumbnail string `json:"thumbnail"`
	} `json:"image"`
	Name string `json:"name"`
}

type DotaMatchKill added in v3.1.0

type DotaMatchKill struct {
	Killer  int64   `json:"killer"`
	Victim  int64   `json:"victim"`
	AtTime  int64   `json:"at_time"`
	Assists []int64 `json:"assists"`
}

DotaMatchKill is a summarization of data about kill event of Dota match.

type DotaMatchPlayerStats added in v3.1.0

type DotaMatchPlayerStats struct {
	PlayerId     int64             `json:"player_id"`
	Hero         Hero              `json:"hero"`
	Kills        int64             `json:"kills"`
	Deaths       int64             `json:"deaths"`
	Assists      int64             `json:"assists"`
	Gpm          float64           `json:"gpm"`
	Networth     int64             `json:"networth"`
	Xpm          float64           `json:"xpm"`
	Levels       map[string]int64  `json:"levels"`
	CreepKills   int64             `json:"creep_kills"`
	CreepDenies  int64             `json:"creep_denies"`
	CampsStacked int64             `json:"camps_stacked"`
	HeroDmg      DotaPlayerDmg     `json:"hero_dmg"`
	HeroHealing  DotaPlayerHealing `json:"hero_healing"`
	Wards        DotaWardsStat     `json:"wards"`
	Runes        DotaRunesStat     `json:"runes"`
	Items        struct {
		Inventory struct {
			Slot1 DotaItem `json:"slot_1"`
			Slot2 DotaItem `json:"slot_2"`
			Slot3 DotaItem `json:"slot_3"`
			Slot4 DotaItem `json:"slot_4"`
			Slot5 DotaItem `json:"slot_5"`
			Slot6 DotaItem `json:"slot_6"`
		} `json:"inventory"`
		Backpack struct {
			Slot1 DotaItem `json:"slot_1"`
			Slot2 DotaItem `json:"slot_2"`
			Slot3 DotaItem `json:"slot_3"`
		} `json:"backpack"`
		Stash struct {
			Slot1 DotaItem `json:"slot_1"`
			Slot2 DotaItem `json:"slot_2"`
			Slot3 DotaItem `json:"slot_3"`
			Slot4 DotaItem `json:"slot_4"`
			Slot5 DotaItem `json:"slot_5"`
			Slot6 DotaItem `json:"slot_6"`
		} `json:"stash"`
	} `json:"items"`
}

DotaMatchPlayerStats is the summarization of a Player in Dota match.

type DotaMatchSummary

type DotaMatchSummary struct {
	RadiantRoster int64                  `json:"radiant_roster"`
	DireRoster    int64                  `json:"dire_roster"`
	MatchLength   int64                  `json:"match_length"`
	DraftSeq      []DotaDraftEvent       `json:"draft_seq"`
	FirstBlood    DotaFirstBloodEvent    `json:"first_blood"`
	Kills         []DotaMatchKill        `json:"kills"`
	StructureDest []DotaStructureDest    `json:"structure_dest"`
	PlayerStats   []DotaMatchPlayerStats `json:"player_stats"`
	RoshanEvents  []RoshanEvent          `json:"roshan_events"`
}

DotaMatchSummary is the summarization of a Dota match.

type DotaPlayerAgainst

type DotaPlayerAgainst struct {
	PlayerAgainst
	Hero Hero `json:"hero"`
}

DotaPlayerAgainst is a grouping of PlayerAgainst and a Hero

type DotaPlayerDmg added in v3.1.0

type DotaPlayerDmg struct {
	Given struct {
		ByHero DotaDmg `json:"by_hero"`
		ByMobs DotaDmg `json:"by_mobs"`
	} `json:"given"`
	Taken struct {
		FromHeroes DotaDmg `json:"from_heroes"`
		FromMobs   DotaDmg `json:"from_mobs"`
	} `json:"taken"`
}

DotaPlayerDmg is a collection of damage stat given or taken by player in Dota match.

type DotaPlayerHealing added in v3.1.0

type DotaPlayerHealing struct {
	Given struct {
		ByHero int64 `json:"by_hero"`
		ByMobs int64 `json:"by_mobs"`
	} `json:"given"`
	Taken struct {
		FromHeroes int64 `json:"from_heroes"`
		FromMobs   int64 `json:"from_mobs"`
	} `json:"taken"`
}

DotaPlayerDmg is a collection of damage stat given or taken by player in Dota match.

type DotaPlayerPerformance

type DotaPlayerPerformance struct {
	Matches        int64   `json:"matches"`
	Wins           int64   `json:"wins"`
	AvgKills       float64 `json:"avg_kills"`
	AvgDeaths      float64 `json:"avg_deaths"`
	AvgAssists     float64 `json:"avg_assists"`
	AvgCreepKills  float64 `json:"avg_creep_kills"`
	AvgCreepDenies float64 `json:"avg_creep_denies"`
	AvgGpm         float64 `json:"avg_gpm"`
	AvgXpm         float64 `json:"avg_xpm"`
}

DotaPlayerPerformance holds some data about a a players performance. This struct is re-used for different levels of data (e.g hero_stats and top_hero)

type DotaPlayerStats

type DotaPlayerStats struct {
	Stats     DotaPlayerPerformance `json:"stats"`
	HeroStats struct {
		Attribute struct {
			Strength     DotaPlayerPerformance `json:"strength"`
			Agility      DotaPlayerPerformance `json:"agility"`
			Intelligence DotaPlayerPerformance `json:"intelligence"`
		} `json:"attribute"`
		TopHeroes []struct {
			Hero Hero `json:"hero"`
			DotaPlayerPerformance
		} `json:"top_heroes"`
	} `json:"hero_stats"`
	FactionStats struct {
		Radiant struct {
			Matches int64 `json:"matches"`
			Wins    int64 `json:"wins"`
		} `json:"radiant"`
		Dire struct {
			Matches int64 `json:"matches"`
			Wins    int64 `json:"wins"`
		} `json:"dire"`
	} `json:"faction_stats"`
}

DotaPlayerByPlayStats holds play by play stats for dota players

type DotaRunesStat added in v3.1.0

type DotaRunesStat struct {
	DoubleDamageRunes int64 `json:"double_damage_runes"`
	HasteRunes        int64 `json:"haste_runes"`
	IllusionRunes     int64 `json:"illusion_runes"`
	InvisibilityRunes int64 `json:"invisibility_runes"`
	RegenerationRunes int64 `json:"regeneration_runes"`
	BountyRunes       int64 `json:"bounty_runes"`
	ArcaneRunes       int64 `json:"arcane_runes"`
}

DotaRunesStat is a collection of data about picked up runes

type DotaSeriesSummary

type DotaSeriesSummary struct {
	Scoreboard map[string][]struct {
		PlayerID      int64   `json:"player_id"`
		MatchesPlayed int64   `json:"matches_played"`
		Kills         int64   `json:"kills"`
		Deaths        int64   `json:"deaths"`
		Assists       int64   `json:"assists"`
		Gpm           float64 `json:"gpm"`
		Xpm           float64 `json:"xpm"`
		CreepKills    int64   `json:"creep_kills"`
		CreepDenies   int64   `json:"creep_denies"`
		HeroDmg       struct {
			Given struct {
				ByHero struct {
					HpRemoval   int64 `json:"hp_removal"`
					MagicalDmg  int64 `json:"magical_dmg"`
					PhysicalDmg int64 `json:"physical_dmg"`
					PureDmg     int64 `json:"pure_dmg"`
				} `json:"by_hero"`
				ByMobs struct {
					HpRemoval   int64 `json:"hp_removal"`
					MagicalDmg  int64 `json:"magical_dmg"`
					PhysicalDmg int64 `json:"physical_dmg"`
					PureDmg     int64 `json:"pure_dmg"`
				} `json:"by_mobs"`
			} `json:"given"`
			Taken struct {
				FromHeroes struct {
					HpRemoval   int64 `json:"hp_removal"`
					MagicalDmg  int64 `json:"magical_dmg"`
					PhysicalDmg int64 `json:"physical_dmg"`
					PureDmg     int64 `json:"pure_dmg"`
				} `json:"from_heroes"`
				FromMobs struct {
					HpRemoval   int64 `json:"hp_removal"`
					MagicalDmg  int64 `json:"magical_dmg"`
					PhysicalDmg int64 `json:"physical_dmg"`
					PureDmg     int64 `json:"pure_dmg"`
				} `json:"from_mobs"`
			} `json:"taken"`
		} `json:"hero_dmg"`
	} `json:"scoreboard"`
}

type DotaStructureDest added in v3.1.0

type DotaStructureDest struct {
	Killer        int64  `json:"killer"`
	StructureType string `json:"structure_type"`
	StructurePos  string `json:"structure_pos"`
	AtTime        int64  `json:"at_time"`
}

DotaStructureDest is a summarization of data about structure destruction event of Dota match.

type DotaTeamStats

type DotaTeamStats struct {
	FactionStats struct {
		Radiant struct {
			Matches int64 `json:"matches"`
			Wins    int64 `json:"wins"`
		} `json:"radiant"`
		Dire struct {
			Matches int64 `json:"matches"`
			Wins    int64 `json:"wins"`
		} `json:"dire"`
	} `json:"faction_stats"`
	Drafts struct {
		Own struct {
			MostPicked []DotaHeroWithWins `json:"most_picked"`
			MostBanned []DotaHeroWithWins `json:"most_banned"`
		} `json:"own"`
		Opponents struct {
			MostPicked []DotaHeroWithWins `json:"most_picked"`
			MostBanned []DotaHeroWithWins `json:"most_banned"`
		} `json:"opponents"`
	} `json:"drafts"`
	TopStats struct {
		Kills struct {
			DotaPlayerAgainst
			Kills int64 `json:"kills"`
		} `json:"kills"`
		Gpm struct {
			DotaPlayerAgainst
			Gpm float64 `json:"gpm"`
		} `json:"gpm"`
		Xpm struct {
			DotaPlayerAgainst
			Xpm float64 `json:"xpm"`
		} `json:"xpm"`
		DmgGiven struct {
			DotaPlayerAgainst
			DmgGiven float64 `json:"dmg_given"`
		} `json:"dmg_given"`
		CreepKills struct {
			DotaPlayerAgainst
			LastHits int64 `json:"last_hits"`
		} `json:"creep_kills"`
		CreepDenies struct {
			DotaPlayerAgainst
			Denies int64 `json:"denies"`
		} `json:"creep_denies"`
	} `json:"top_stats"`
	TopMatches struct {
		AvgLength float64 `json:"avg_length"`
		Longest   struct {
			Won struct {
				TeamAgainst
				Length int64 `json:"length"`
			} `json:"won"`
			Lost struct {
				TeamAgainst
				Length int64 `json:"length"`
			} `json:"lost"`
		} `json:"longest"`
		Shortest struct {
			Won struct {
				TeamAgainst
				Length int64 `json:"length"`
			} `json:"won"`
			Lost struct {
				TeamAgainst
				Length int64 `json:"length"`
			} `json:"lost"`
		} `json:"shortest"`
		AvgKpm float64 `json:"avg_kpm"`
		Kpm    struct {
			Highest struct {
				Kpm float64 `json:"kpm"`
				TeamAgainst
			} `json:"highest"`
			Lowest struct {
				Kpm float64 `json:"kpm"`
				TeamAgainst
			} `json:"lowest"`
		} `json:"kpm"`
	} `json:"top_matches"`
	Average struct {
		Match struct {
			Kills   *float64 `json:"kills"`
			Deaths  *float64 `json:"deaths"`
			Assists *float64 `json:"assists"`
			Gpm     *float64 `json:"gpm"`
			Xpm     *float64 `json:"xpm"`
			Length  *float64 `json:"length"`
			Wards   struct {
				Observers struct {
					Killed *float64 `json:"killed"`
					Placed *float64 `json:"placed"`
				} `json:"observers"`
				Sentries struct {
					Killed *float64 `json:"killed"`
					Placed *float64 `json:"placed"`
				} `json:"sentries"`
			} `json:"wards"`
			Structures struct {
				Towers struct {
					Taken  *float64 `json:"taken"`
					Lost   *float64 `json:"lost"`
					Denied *float64 `json:"denied"`
				} `json:"towers"`
				Barracks struct {
					Taken  *float64 `json:"taken"`
					Lost   *float64 `json:"lost"`
					Denied *float64 `json:"denied"`
				} `json:"barracks"`
			} `json:"structures"`
			Creeps struct {
				Lane struct {
					Kills  *float64 `json:"kills"`
					Denies *float64 `json:"denies"`
				} `json:"lane"`
				Neutral struct {
					Roshan *float64 `json:"roshan"`
					Total  *float64 `json:"total"`
				} `json:"neutral"`
			} `json:"creeps"`
			FirstBlood struct {
				Rate    *float64 `json:"rate"`
				TakenAt *float64 `json:"taken_at"`
			} `json:"first_blood"`
		} `json:"match"`
	} `json:"average"`
}

DotaTeamStats holds data about a teams play by play stats for dota

type DotaWardsStat added in v3.1.0

type DotaWardsStat struct {
	Observers struct {
		Killed int64 `json:"killed"`
		Placed int64 `json:"placed"`
	} `json:"observers"`
	Sentries struct {
		Killed int64 `json:"killed"`
		Placed int64 `json:"placed"`
	} `json:"sentries"`
}

DotaWardsStat is a collection of data about wards actions of a player

type Error

type Error struct {
	ErrorMessage     string `json:"error,omitempty"`
	ErrorCode        int64  `json:"error_code,omitempty"`
	ErrorDescription string `json:"error_description,omitempty"`
}

Error represents an error response from the API.

func (Error) Error

func (e Error) Error() (s string)

func (Error) String

func (e Error) String() (s string)

type Forfeit

type Forfeit map[string]bool

Forfeit contains two items with roster ids as keys mapping to a boolean value describing whether the roster has forfeited or not.

type Game

type Game struct {
	Id        int64      `json:"id,omitempty"`
	Title     string     `json:"title,omitempty"`
	LongTitle string     `json:"long_title,omitempty"`
	DeletedAt *string    `json:"deleted_at"` // Datettime
	Images    GameImages `json:"images,omitempty"`
	Color     string     `json:"color,omitempty"`
}

Game represents the actual game being played in a Series

type GameImages

type GameImages struct {
	Square    string `json:"square,omitempty"`
	Circle    string `json:"circle,omitempty"`
	Rectangle string `json:"rectangle,omitempty"`
}

GameImages represents the different keys for images a Game can contain

type Hero

type Hero struct {
	Name      string `json:"name"`
	Attribute string `json:"attribute"`
	Images    struct {
		Large string `json:"large"`
		Small string `json:"small"`
	} `json:"images"`
}

type Incident

type Incident struct {
	SeriesId   int64   `json:"series_id,omitempty"`
	MatchId    *int64  `json:"match_id,omitempty"`
	Comment    string  `json:"comment,omitempty"`
	CreatedAt  string  `json:"created_at,omitempty"`
	UpdatedAt  *string `json:"updated_at"`
	IncidentId int64   `json:"incident_id,omitempty"`
}

Incident represents an incident.

type Kill added in v3.1.0

type Kill struct {
	RoundClock int64 `json:"round_clock"`
	Damage     int64 `json:"damage"`
	Attacker   struct {
		PlayerId int64 `json:"player_id"`
		Pos      Pos   `json:"pos"`
	} `json:"attacker"`
	Victim struct {
		PlayerId int64 `json:"player_id"`
		Pos      Pos   `json:"pos"`
	} `json:"victim"`
	Assists  *int64 `json:"assist"`
	Weapon   Weapon `json:"weapon"`
	HitGroup string `json:"hit_group"`
}

Kill holds CS:GO kill data

type Links struct {
	Website string `json:"website"`
	Youtube string `json:"youtube"`
}

Links holds information about links relevant to a Tournament.

type LolDmg

type LolDmg struct {
	Magic    int64 `json:"magic"`
	Physical int64 `json:"physical"`
	True     int64 `json:"true"`
}

type LolEvent

type LolEvent struct {
	Timestamp int64 `json:"timestamp"`
	Position  Pos   `json:"position"`
	KillerId  int64 `json:"killer_id"`
}

type LolItem

type LolItem struct {
	Name       string `json:"name"`
	ExternalId int64  `json:"external_id"`
	Image      struct {
		Default   string `json:"default"`
		Thumbnail string `json:"thumbnail"`
	} `json:"image"`
}

type LolLaneEvent

type LolLaneEvent struct {
	Lane string `json:"lane"`
	LolEvent
}

type LolMatchSummary

type LolMatchSummary struct {
	MatchLength int64 `json:"match_length"`
	BlueRoster  struct {
		Id      int64       `json:"id"`
		Players []LolPlayer `json:"players"`
	} `json:"blue_roster"`
	PurpleRoster struct {
		Id      int64       `json:"id"`
		Players []LolPlayer `json:"players"`
	} `json:"purple_roster"`
	Firsts struct {
		FirstBlood struct {
			PlayerId  int64  `json:"player_id"`
			Timestamp int64  `json:"timestamp"`
			Team      string `json:"team"`
		} `json:"first_blood"`
		FirstTower struct {
			PlayerId  int64  `json:"player_id"`
			Timestamp int64  `json:"timestamp"`
			Team      string `json:"team"`
		} `json:"first_tower"`
		FirstInhibitor struct {
			PlayerId  int64  `json:"player_id"`
			Timestamp int64  `json:"timestamp"`
			Team      string `json:"team"`
		} `json:"first_inhibitor"`
		FirstBaron struct {
			PlayerId  int64  `json:"player_id"`
			Timestamp int64  `json:"timestamp"`
			Team      string `json:"team"`
		} `json:"first_baron"`
		FirstDragon struct {
			PlayerId  int64  `json:"player_id"`
			Timestamp int64  `json:"timestamp"`
			Team      string `json:"team"`
		} `json:"first_dragon"`
		FirstRiftHerald struct {
			PlayerId  int64  `json:"player_id"`
			Timestamp int64  `json:"timestamp"`
			Team      string `json:"team"`
		} `json:"first_rift_herald"`
	} `json:"firsts"`
	Wards []struct {
		EventType string `json:"event_type"`
		Type      string `json:"type"`
		PlayerId  int64  `json:"player_id"`
		Timestamp int64  `json:"timestamp"`
	} `json:"wards"`
	KillTimeline []struct {
		Timestamp int64   `json:"timestamp"`
		Position  Pos     `json:"position"`
		KillerId  int64   `json:"killer_id"`
		VictimId  int64   `json:"victim_id"`
		Assists   []int64 `json:"assists"`
	} `json:"kill_timeline"`
	ObjectiveEvents struct {
		Towers []struct {
			Type    string  `json:"type"`
			Assists []int64 `json:"assists"`
			LolLaneEvent
		} `json:"towers"`
		Inihibitors []struct {
			LolLaneEvent
			Assists []int64 `json:"assists"`
		} `json:"inhibitors"`
		Barons  []LolEvent `json:"barons"`
		Dragons []struct {
			Type string `json:"type"`
			LolEvent
		} `json:"dragons"`
		RiftHeralds []LolEvent `json:"rift_heralds"`
	} `json:"objective_events"`
	Draft []struct {
		RosterId int64    `json:"roster_id"`
		Champion Champion `json:"champion"`
		Order    *int64   `json:"order"`
		Type     string   `json:"type"`
	} `json:"draft"`
}

type LolPlayer

type LolPlayer struct {
	PlayerId   int64    `json:"player_id"`
	Role       string   `json:"role"`
	Lane       string   `json:"lane"`
	Kills      int64    `json:"kills"`
	Deaths     int64    `json:"deaths"`
	Assists    int64    `json:"assists"`
	GoldEarned int64    `json:"gold_earned"`
	GoldSpent  int64    `json:"gold_spent"`
	Gpm        float64  `json:"gpm"`
	TotalXp    int64    `json:"total_xp"`
	Xpm        float64  `json:"xpm"`
	Champion   Champion `json:"champion"`
	KillCombos struct {
		Double              int64 `json:"double"`
		Triple              int64 `json:"triple"`
		Quadra              int64 `json:"quadra"`
		Penta               int64 `json:"penta"`
		Unreal              int64 `json:"unreal"`
		LargestKillingSpree int64 `json:"largest_killing_spree"`
		LargestMultiKill    int64 `json:"largest_multi_kill"`
		KillingSprees       int64 `json:"killing_sprees"`
	} `json:"kill_combos"`
	Items struct {
		Inventory struct {
			Slot1 LolItem `json:"slot_1"`
			Slot2 LolItem `json:"slot_2"`
			Slot3 LolItem `json:"slot_3"`
			Slot4 LolItem `json:"slot_4"`
			Slot5 LolItem `json:"slot_5"`
			Slot6 LolItem `json:"slot_6"`
			Slot7 LolItem `json:"slot_7"`
		} `json:"inventory"`
	} `json:"items"`
	Damage struct {
		Total        LolDmg `json:"total"`
		ToHeroes     LolDmg `json:"to_heroes"`
		DamageTaken  LolDmg `json:"damage_taken"`
		LargestCrit  int64  `json:"largest_crit"`
		ToObjectives int64  `json:"to_objectives"`
		ToTurrets    int64  `json:"to_turrets"`
	} `json:"damage"`
	Support struct {
		AmountHealed     int64 `json:"amount_healed"`
		UnitsHealed      int64 `json:"units_healed"`
		CrowdControlTime int64 `json:"crowd_control_time"`
	} `json:"support"`
	MinionKills struct {
		Total              int64 `json:"total"`
		NeutralJungle      int64 `json:"neutral_jungle"`
		NeutralEnemyJungle int64 `json:"neutral_enemy_jungle"`
	} `json:"minion_kills"`
	Wards []struct {
		Type      string `json:"type"`
		Destroyed int64  `json:"destroyed"`
		Placed    int64  `json:"placed"`
	} `json:"wards"`
	ChampionSpells map[string]struct {
		Name string `json:"name"`
	} `json:"champion_spells"`
	Masteries []struct {
		Name string `json:"name"`
		Rank int64  `json:"rank"`
	} `json:"masteries"`
	Runes []struct {
		Name string `json:"name"`
		Rank int64  `json:"rank"`
	} `json:"runes"`
	RunesReforged struct {
		PrimaryPath struct {
			Path struct {
				Name       string `json:"name"`
				ExternalId int64  `json:"external_id"`
			} `json:"path"`
			Keystone struct {
				Name       string `json:"name"`
				ExternalId int64  `json:"external_id"`
			} `json:"keystone"`
			Rune1 struct {
				Name       string `json:"name"`
				ExternalId int64  `json:"external_id"`
			} `json:"rune_1"`
			Rune2 struct {
				Name       string `json:"name"`
				ExternalId int64  `json:"external_id"`
			} `json:"rune_2"`
			Rune3 struct {
				Name       string `json:"name"`
				ExternalId int64  `json:"external_id"`
			} `json:"rune_3"`
		} `json:"primary_path"`
		SecondaryPath struct {
			Path struct {
				Name       string `json:"name"`
				ExternalId int64  `json:"external_id"`
			} `json:"path"`
			Rune1 struct {
				Name       string `json:"name"`
				ExternalId int64  `json:"external_id"`
			} `json:"rune_1"`
			Rune2 struct {
				Name       string `json:"name"`
				ExternalId int64  `json:"external_id"`
			} `json:"rune_2"`
		} `json:"secondary_path"`
	} `json:"runes_reforged"`
	Skillups []struct {
		Time        int64  `json:"time"`
		AbilitySlot int64  `json:"ability_slot"`
		Type        string `json:"type"`
	} `json:"skillups"`
}

type LolPlayerAgainst

type LolPlayerAgainst struct {
	Value    float64  `json:"value"`
	PlayerId int64    `json:"player_id"`
	MatchId  int64    `json:"match_id"`
	Champion Champion `json:"champion"`
	Against  Roster   `json:"against"`
}

type LolPlayerStats

type LolPlayerStats struct {
	NrMatches int64 `json:"nr_matches"`
	NrWins    int64 `json:"nr_wins"`
	AvgStats  struct {
		Kills       float64 `json:"kills"`
		Deaths      float64 `json:"deaths"`
		Assists     float64 `json:"assists"`
		Gpm         float64 `json:"gpm"`
		Xpm         float64 `json:"xpm"`
		MinionKills struct {
			Total              float64 `json:"total"`
			NeutralMinions     float64 `json:"neutral_minions"`
			NeutralJungle      float64 `json:"neutral_jungle"`
			NeutralEnemyJungle float64 `json:"neutral_enemy_jungle"`
		} `json:"minion_kills"`
		Wards []struct {
			Placed    float64 `json:"placed"`
			Destroyed float64 `json:"destroyed"`
			Type      string  `json:"type"`
		} `json:"wards"`
	} `json:"avg_stats"`
	LargestCombo struct {
		Double              int64 `json:"double"`
		Triple              int64 `json:"triple"`
		Quadra              int64 `json:"quadra"`
		Penta               int64 `json:"penta"`
		Unreal              int64 `json:"unreal"`
		LargestKillingSpree int64 `json:"largest_killing_spree"`
		LargestMultiKill    int64 `json:"largest_multi_kill"`
		KillingSprees       int64 `json:"killing_sprees"`
	} `json:"largest_combos"`
	MostPlayedChampion []struct {
		Champion   Champion `json:"champion"`
		NrMatches  int64    `json:"nr_matches"`
		NrWins     int64    `json:"nr_wins"`
		AvgKills   float64  `json:"avg_kills"`
		AvgDeaths  float64  `json:"avg_deaths"`
		AvgAssists float64  `json:"avg_assists"`
		AvgGpm     float64  `json:"avg_gpm"`
		AvgXpm     float64  `json:"avg_xpm"`
	} `json:"most_played_champions"`
	SideStats struct {
		Purple struct {
			NrMatches int64 `json:"nr_matches"`
			NrWins    int64 `json:"nr_wins"`
		} `json:"purple"`
		Blue struct {
			NrMatches int64 `json:"nr_matches"`
			NrWins    int64 `json:"nr_wins"`
		} `json:"blue"`
	} `json:"side_stats"`
}

type LolSeriesSummary

type LolSeriesSummary struct {
	Scoreboard map[string][]struct {
		PlayerID      int64   `json:"player_id"`
		MatchesPlayed int64   `json:"matches_played"`
		Kills         int64   `json:"kills"`
		Deaths        int64   `json:"deaths"`
		Assists       int64   `json:"assists"`
		GoldEarned    int64   `json:"gold_earned"`
		GoldSpent     int64   `json:"gold_spent"`
		TotalXp       int64   `json:"total_xp"`
		Xpm           float64 `json:"xpm"`
		Gpm           float64 `json:"gpm"`
		KillCombos    struct {
			Double              int64 `json:"double"`
			Triple              int64 `json:"triple"`
			Quadra              int64 `json:"quadra"`
			Penta               int64 `json:"penta"`
			Unreal              int64 `json:"unreal"`
			LargestKillingSpree int64 `json:"largest_killing_spree"`
			LargestMultiKill    int64 `json:"largest_multi_kill"`
			KillingSprees       int64 `json:"killing_sprees"`
		} `json:"kill_combos"`
		MinionKills struct {
			Total              int64 `json:"total"`
			NeutralJungle      int64 `json:"neutral_jungle"`
			NeutralEnemyJungle int64 `json:"neutral_enemy_jungle"`
		} `json:"minion_kills"`
		Damage struct {
			Total struct {
				Magic    int64 `json:"magic"`
				Physical int64 `json:"physical"`
				True     int64 `json:"true"`
			} `json:"total"`
			ToHeroes struct {
				Magic    int64 `json:"magic"`
				Physical int64 `json:"physical"`
				True     int64 `json:"true"`
			} `json:"to_heroes"`
			DamageTaken struct {
				Magic    int64 `json:"magic"`
				Physical int64 `json:"physical"`
				True     int64 `json:"true"`
			} `json:"damage_taken"`
			LargestCrit  int64 `json:"largest_crit"`
			ToObjectives int64 `json:"to_objectives"`
			ToTurrets    int64 `json:"to_turrets"`
		} `json:"damage"`
		Support struct {
			AmountHealed     int64 `json:"amount_healed"`
			UnitsHealed      int64 `json:"units_healed"`
			CrowdControlTime int64 `json:"crowd_control_time"`
		} `json:"support"`
	}
}

type LolTeamAgainst

type LolTeamAgainst struct {
	Value   float64 `json:"value"`
	MatchId int64   `json:"match_id"`
	Against Roster  `json:"against"`
}

type LolTeamStats

type LolTeamStats struct {
	NrMatches int64 `json:"nr_matches"`
	NrWins    int64 `json:"nr_wins"`
	SideStats struct {
		Purple struct {
			NrMatches int64 `json:"nr_matches"`
			NrWins    int64 `json:"nr_wins"`
		} `json:"purple"`
		Blue struct {
			NrMatches int64 `json:"nr_matches"`
			NrWins    int64 `json:"nr_wins"`
		} `json:"blue"`
	} `json:"side_stats"`
	Average struct {
		Match struct {
			Kills   *float64 `json:"kills"`
			Deaths  *float64 `json:"deaths"`
			Assists *float64 `json:"assists"`
			Gpm     *float64 `json:"gpm"`
			Length  *float64 `json:"length"`
			Wards   struct {
				Killed *float64 `json:"killed"`
				Placed *float64 `json:"placed"`
			} `json:"wards"`
			Structures struct {
				Turrets struct {
					Taken *float64 `json:"taken"`
					Lost  *float64 `json:"lost"`
				} `json:"turrets"`
				Inhibitors struct {
					Taken *float64 `json:"taken"`
					Lost  *float64 `json:"lost"`
				} `json:"inhibitors"`
			} `json:"structures"`
			Creeps struct {
				Lane struct {
					Kills *float64 `json:"kills"`
				} `json:"lane"`
				Neutral struct {
					Baron   *float64 `json:"baron"`
					Dragon  *float64 `json:"dragon"`
					Heralds *float64 `json:"heralds"`
					Total   *float64 `json:"total"`
				} `json:"neutral"`
			} `json:"creeps"`
			FirstBlood struct {
				Rate    *float64 `json:"rate"`
				TakenAt *float64 `json:"taken_at"`
			} `json:"first_blood"`
		} `json:"match"`
	} `json:"average"`
	Champions []struct {
		NrMatches int64    `json:"nr_matches"`
		NrWins    int64    `json:"nr_wins"`
		Champion  Champion `json:"champion"`
	} `json:"champions"`
	TopStats struct {
		Kills               LolPlayerAgainst  `json:"kills"`
		Gpm                 LolPlayerAgainst  `json:"gpm"`
		Xpm                 LolPlayerAgainst  `json:"xpm"`
		DoubleKills         *LolPlayerAgainst `json:"double_kills"`
		TripleKills         *LolPlayerAgainst `json:"triple_kills"`
		QuadraKills         *LolPlayerAgainst `json:"quadra_kills"`
		PentaKills          *LolPlayerAgainst `json:"Penta_kills"`
		UnrealKills         *LolPlayerAgainst `json:"Unreal_kills"`
		LargestKillingSpree *LolPlayerAgainst `json:"largest_killing_spree"`
		LargestMultiKill    *LolPlayerAgainst `json:"largest_multi_kill"`
	} `json:"top_stats"`
	TopMatches struct {
		Kpm struct {
			Avg     float64 `json:"avg"` // Only lol
			Highest struct {
				LolTeamAgainst
			} `json:"highest"`
			Lowest struct {
				LolTeamAgainst
			} `json:"lowest"`
		} `json:"kpm"`
		Length struct {
			Avg     float64 `json:"avg"`
			Longest struct {
				Won  LolTeamAgainst `json:"won"`
				Lost LolTeamAgainst `json:"lost"`
			} `json:"longest"`
			Shortest struct {
				Won  LolTeamAgainst `json:"won"`
				Lost LolTeamAgainst `json:"lost"`
			} `json:"shortest"`
		} `json:"length"`
	} `json:"top_matches"`
}

type Map

type Map struct {
	Id       int64  `json:"id"`
	Name     string `json:"name,omitempty"`
	Official bool   `json:"official"`
	Game     Game   `json:"game,omitempty"`
}

Map represents the map being played in a Match

type Match

type Match struct {
	Id           int64            `json:"id,omitempty"`
	SeriesId     int64            `json:"series_id,omitempty"`
	Order        int64            `json:"order,omitempty"`
	Winner       *int64           `json:"winner"`
	Map          *Map             `json:"map,omitempty"`
	DeletedAt    *string          `json:"deleted_at"`
	Game         Game             `json:"game"`
	HasPbpStats  bool             `json:"has_pbpstats"`
	Scores       *Scores          `json:"scores"`
	Forfeit      Forfeit          `json:"forfeit,omitempty"`
	Seeding      Seeding          `json:"seeding,omitempty"`
	Rosters      []Roster         `json:"rosters"`
	Performance  MatchPerformance `json:"performance,omitempty"`
	MatchSummary MatchSummary     `json:"match_summary"` // Play by Play
}

Match represents an actual map being played between two rosters.

func (*Match) UnmarshalJSON

func (m *Match) UnmarshalJSON(data []byte) error

We need to unmarshal match_summary into the game-specific struct

type MatchPerformance

type MatchPerformance struct {
	Winrate MatchWinrate `json:"winrate,omitempty"`
}

MatchPerformance is associated with a Match and contains performance information about the Rosters with respect to the specific map.

type MatchSummary

type MatchSummary interface{}

MatchSummary holds information about play by play statistics for a certain match.

type MatchWinrate

type MatchWinrate struct {
	Overall *MatchWinrateOverall `json:"over_all"`
	PerMap  []MatchWinratePerMap `json:"per_map"`
}

MatchWinrate holds the top-level keys for winrate statistics.

type MatchWinrateOverall

type MatchWinrateOverall struct {
	History int64              `json:"history,omitempty"`
	Rosters map[string]float64 `json:"-"`
}

MatchWinrateOverall holds information about the summarized performance statistics.

func (*MatchWinrateOverall) UnmarshalJSON

func (m *MatchWinrateOverall) UnmarshalJSON(b []byte) (err error)

type MatchWinratePerMap

type MatchWinratePerMap struct {
	Map     Map                `json:"map,omitempty"`
	History int64              `json:"history,omitempty"`
	Rosters map[string]float64 `json:"-"`
}

MatchWinratePerMap breaks down the winrate statistics per Map.

func (*MatchWinratePerMap) UnmarshalJSON

func (m *MatchWinratePerMap) UnmarshalJSON(b []byte) (err error)

type Moneyline

type Moneyline struct {
	Home        float64  `json:"home"`
	HomeBetSlip *string  `json:"home_bet_slip"`
	Away        float64  `json:"away"`
	AwayBetSlip *string  `json:"away_bet_slip"`
	Draw        *float64 `json:"draw"`
	DrawBetSlip *string  `json:"draw_bet_slip"`
}

Moneyline holds information about the mouneyline for a particular sportsbook.

type Organisation

type Organisation struct {
	Id    int64  `json:"id,omitempty"`
	Name  string `json:"name,omitempty"`
	Teams []Team `json:"teams"`
}

Organisation represents a logical grouping of Teams across different Games

type PaginatedGames

type PaginatedGames struct {
	LastPage    int64  `json:"last_page,omitempty"`
	CurrentPage int64  `json:"current_page,omitempty"`
	Data        []Game `json:"data,omitempty"`
}

PaginatedGames holds a list of Game as well as information about pages.

type PaginatedIncidents

type PaginatedIncidents struct {
	LastPage    int64      `json:"last_page,omitempty"`
	CurrentPage int64      `json:"current_page,omitempty"`
	Data        []Incident `json:"data"`
}

PaginatedIncidents holds a list of Incident as well as information about pages

type PaginatedOrganisations

type PaginatedOrganisations struct {
	LastPage    int64          `json:"last_page,omitempty"`
	CurrentPage int64          `json:"current_page,omitempty"`
	Data        []Organisation `json:"data,omitempty"`
}

PaginatedOrganisations holds a list of Team as well as information about pages.

type PaginatedPlayers

type PaginatedPlayers struct {
	LastPage    int64    `json:"last_page,omitempty"`
	CurrentPage int64    `json:"current_page,omitempty"`
	Data        []Player `json:"data,omitempty"`
}

PaginatedPlayers holds a list of Player as well as information about pages.

type PaginatedSeries

type PaginatedSeries struct {
	LastPage    int64    `json:"last_page,omitempty"`
	CurrentPage int64    `json:"current_page,omitempty"`
	Data        []Series `json:"data,omitempty"`
}

PaginatedSeries holds a list of Series as well as information about pages.

type PaginatedTeams

type PaginatedTeams struct {
	LastPage    int64  `json:"last_page,omitempty"`
	CurrentPage int64  `json:"current_page,omitempty"`
	Data        []Team `json:"data,omitempty"`
}

PaginatedTeams holds a list of Team as well as information about pages.

type PaginatedTournaments

type PaginatedTournaments struct {
	LastPage    int64        `json:"last_page,omitempty"`
	CurrentPage int64        `json:"current_page,omitempty"`
	Data        []Tournament `json:"data,omitempty"`
}

PaginatedTournaments holds a list of Tournament as well as information about pages

type Platform

type Platform struct {
	Id     int64          `json:"id,omitempty"`
	Name   string         `json:"name,omitempty"`
	Color  string         `json:"color,omitempty"`
	Images PlatformImages `json:"images,omitempty"`
}

Platform represents a third party streaming platform.

type PlatformImages

type PlatformImages struct {
	Default string `json:"default,omitempty"`
}

PlatformImages represents the different keys for images a Platform can contain

type Player

type Player struct {
	Id                  int64                `json:"id,omitempty"`
	FirstName           string               `json:"first_name"`
	LastName            string               `json:"last_name"`
	Nickname            string               `json:"nick_name,omitempty"`
	DeletedAt           *string              `json:"deleted_at"`
	Images              PlayerImages         `json:"images,omitempty"`
	Country             *Country             `json:"country,omitempty"`
	Roles               []Role               `json:"roles"`
	Race                *Race                `json:"race,omitempty"`
	Team                *Team                `json:"team,omitempty"`
	PlayerStats         PlayerStats          `json:"player_stats,omitempty"`
	Rosters             []DefaultRoster      `json:"rosters,omitempty"`
	Game                Game                 `json:"game,omitempty"`
	SocialMediaAccounts []SocialMediaAccount `json:"social_media_accounts,omitempty"`
}

Player represents a player that competes in Series' and Matches.

type PlayerAgainst

type PlayerAgainst struct {
	PlayerId int64 `json:"player_id"`
	Against  *Team `json:"against"` // Declared as pointer to avoid invalid recursive type
	MatchId  int64 `json:"match_id"`
}

PlayerAgainst is a collection of common data when examining specific stats. It is grouped with the specific stat in another struct.

type PlayerImages

type PlayerImages struct {
	Default   string `json:"default,omitempty"`
	Thumbnail string `json:"thumbnail,omitempty"`
	Fallback  bool   `json:"fallback"`
}

PlayerImages represents the different keys for images a Player can contain

type PlayerPlayByPlayStats

type PlayerPlayByPlayStats interface{}

PlayByPlayStats holds information about play by play statistics for a certain player.

type PlayerStats

type PlayerStats struct {
	SinglePlayer *SinglePlayerStats    `json:"single_player,omitempty"` // Null when player does not play single player game. Otherwise format is equal to stats for a team
	PlayByPlay   PlayerPlayByPlayStats `json:"play_by_play"`
}

PlayerStats hold performance statistics about a particular Player.

func (*PlayerStats) UnmarshalJSON

func (p *PlayerStats) UnmarshalJSON(data []byte) error

type Pos

type Pos struct {
	X float64 `json:"x"`
	Y float64 `json:"y"`
	Z float64 `json:"z"`
}

Pos hold x, y and z coordinates.

type Prizepool

type Prizepool struct {
	Total  string `json:"total,omitempty"`
	First  string `json:"first,omitempty"`
	Second string `json:"second,omitempty"`
	Third  string `json:"third,omitempty"`
}

Prizepool holds information about a Tournament's prizepool.

type Race

type Race struct {
	Id     int64      `json:"id,omitempty"`
	GameId int64      `json:"game_id,omitempty"`
	Name   string     `json:"name,omitempty"`
	Images RaceImages `json:"images,omitempty"`
}

Race represents a race, faction, class etc. in a Game.

type RaceImages

type RaceImages struct {
	Default   string `json:"default,omitempty"`
	Thumbnail string `json:"thumbnail,omitempty"`
}

RaceImages represents the different keys for images a Race can contain

type Role

type Role struct {
	Name string  `json:"name"`
	From string  `json:"from"`
	To   *string `json:"to"`
}

type RoshanEvent added in v3.1.0

type RoshanEvent struct {
	Type   string `json:"type"`
	Killer int64  `json:"killer"`
	AtTime int64  `json:"at_time"`
}

RoshanEvent is a summarization of data about Roshan event of Dota match.

type Roster

type Roster struct {
	Id          int64        `json:"id,omitempty"`
	Teams       []Team       `json:"teams,omitempty"`
	Players     []Player     `json:"players,omitempty"`
	RosterStats *RosterStats `json:"roster_stats"`
	Game        Game         `json:"game"`
}

Roster represents a roster (or line-up) in a team game.

type RosterStats

type RosterStats struct {
	Streak struct {
		Match struct {
			StreakScope // defined in stats.go
		} `json:"match,omitempty"`
	} `json:"streak,omitempty"`
	Winrate struct {
		Match struct {
			WinrateMatchScope // defined in stats.go
		} `json:"match,omitempty"`
	} `json:"winrate,omitempty"`
	Nemesis *struct {
		Match struct {
			Roster Roster `json:"roster"`
			Losses int64  `json:"losses"`
		} `json:"match,omitempty"`
	} `json:"nemesis"`
	Dominating *struct {
		Match struct {
			Roster Roster `json:"roster"`
			Wins   int64  `json:"wins"`
		} `json:"match,omitempty"`
	} `json:"dominating"`
}

RosterStats hold performance information about a particular Roster.

type Round added in v3.1.0

type Round struct {
	RoundNr     int64       `json:"round_nr"`
	TSide       int64       `json:"t_side"`
	CtSide      int64       `json:"ct_side"`
	Winner      int64       `json:"winner"`
	WinReason   string      `json:"win_reason"`
	BombEvents  []BombEvent `json:"bomb_events"`
	Kills       []Kill      `json:"kills"`
	PlayerStats struct {
		TSide  []RoundPlayerStats `json:"t_side"`
		CtSide []RoundPlayerStats `json:"ct_side"`
	} `json:"player_stats"`
}

Round is summaryization of a CS:GO round.

type RoundPlayerStats

type RoundPlayerStats struct {
	PlayerId int64   `json:"player_id"`
	DmgGiven float64 `json:"dmg_given"`
	DmgTaken float64 `json:"dmg_taken"`
	Kills    int64   `json:"kills"`
	Assists  int64   `json:"assists"`
	Died     bool    `json:"died"`
	Accuracy struct {
		General  float64 `json:"general"`
		Headshot float64 `json:"head_shot"`
	} `json:"accuracy"`
}

RoundPlayerStats reflects how well a player performed in a round.

type Scores

type Scores map[string]int64

Scores holds informaton about the scores of a particular Match or Series.

type SearchResult

type SearchResult struct {
	Id       int64   `json:"id,omitempty"`
	Matched  string  `json:"matched,omitempty"`
	AltLabel string  `json:"alt_label,omitempty"`
	Type     string  `json:"type,omitempty"`
	GameId   int64   `json:"game_id,omitempty"`
}

SearchResult represents a result from the /search endpoint.

type Seeding

type Seeding map[string]int64

Seeding represents the seeding of all competitors in the related Series.

type Series

type Series struct {
	Id              int64             `json:"id,omitempty"`
	Title           string            `json:"title,omitempty"`
	BestOf          int64             `json:"bestOf,omitempty"`
	Tier            *int64            `json:"tier"`
	Start           *string           `json:"start"`
	End             *string           `json:"end"`
	PostponedFrom   *string           `json:"postponed_from"`
	DeletedAt       *string           `json:"deleted_at"`
	Scores          *Scores           `json:"scores"`
	Forfeit         Forfeit           `json:"forfeit,omitempty"`
	Streamed        bool              `json:"streamed"`
	Seeding         Seeding           `json:"seeding,omitempty"`
	Rosters         []Roster          `json:"rosters,omitempty"`
	Game            Game              `json:"game,omitempty"`
	Matches         []Match           `json:"matches,omitempty"`
	Casters         []Caster          `json:"casters,omitempty"`
	TournamentId    int64             `json:"tournament_id,omitempty"`
	SubstageId      int64             `json:"substage_id,omitempty"`
	BracketPosition *BracketPosition  `json:"bracket_pos"`
	Tournament      Tournament        `json:"tournament,omitempty"`
	Performance     SeriesPerformance `json:"performance,omitempty"`
	SportsbookOdds  []SportsbookOdds  `json:"sportsbook_odds"`
	Chain           *[]struct {
		RootId   int64 `json:"root_id"`
		SeriesId int64 `json:"series_id"`
		Order    int64 `json:"order"`
	} `json:"chain"`
	Summary SeriesSummary `json:"summary"`
}

Series represents a Series of Matches.

func (*Series) UnmarshalJSON

func (s *Series) UnmarshalJSON(data []byte) error

We need to unmarshal summary into the game-specific struct

type SeriesIncidents

type SeriesIncidents struct {
	SeriesIncidents []Incident `json:"series_incidents"`
	MatchIncidents  []Incident `json:"match_incidents"`
}

SeriesIncidents holds information about all incidents associated with a Series and all it's Matches.

type SeriesPerformance

type SeriesPerformance struct {
	PastEncounters    []Series            `json:"past_encounters,omitempty"`
	RecentPerformance map[string][]Series `json:"recent_performance,omitempty"`
}

SeriesPerformance is associated with a Series and contains performance information about the Teams or Players participating in the Series.

type SeriesSummary

type SeriesSummary interface{}

type SinglePlayerStats

type SinglePlayerStats struct {
	Streak struct {
		Series struct {
			StreakScope // defined in stats.go
		} `json:"series,omitempty"`
		Match struct {
			StreakScope // defined in stats.go
		} `json:"match,omitempty"`
	} `json:"streak,omitempty"`
	Winrate struct {
		Series struct {
			WinrateSeriesScope // defined in stats.go
		} `json:"series,omitempty"`
		Match struct {
			WinrateMatchScope // defined in stats.go
		} `json:"match,omitempty"`
	} `json:"winrate,omitempty"`
	Nemesis *struct {
		Series struct {
			Competitor Player `json:"competitor,omitempty"` // defined in stats.go
			Losses     int64  `json:"losses"`
		} `json:"series,omitempty"`
		Match struct {
			Competitor Player `json:"competitor,omitempty"` // defined in stats.go
			Losses     int64  `json:"losses"`
		} `json:"match,omitempty"`
	} `json:"nemesis,omitempty"`
	Dominating *struct {
		Series struct {
			Competitor Player `json:"competitor,omitempty"` // defined in stats.go
			Wins       int64  `json:"wins"`
		} `json:"series,omitempty"`
		Match struct {
			Competitor Player `json:"competitor,omitempty"` // defined in stats.go
			Wins       int64  `json:"wins"`
		} `json:"match,omitempty"`
	} `json:"dominating,omitempty"`
}

SinglePlayerStats hold information for players playing single-player games. For team games see the players corresponding Team and TeamStats.

type SocialMediaAccount

type SocialMediaAccount struct {
	Name string `json:"name,omitempty"`
	Slug string `json:"slug,omitempty"`
	Url  string `json:"url,omitempty"`
}

SocialMediaAccount represents a social media account for a Player or Team

type SportsbookOdds

type SportsbookOdds struct {
	Sportsbook string    `json:"sportsbook"`
	Link       string    `json:"link"`
	Moneyline  Moneyline `json:"moneyline"`
}

SportsbookOdds is a top-level struct holding information about sportsbook odds.

type Stage

type Stage struct {
	Id        int64      `json:"id,omitempty"`
	Title     string     `json:"title,omitempty"`
	DeletedAt *string    `json:"deleted_at"`
	Substages []Substage `json:"substages"`
}

Stage represents a phase in a Tournament and a higher level grouping of Substages.

type Standings

type Standings struct {
	RosterId int64  `json:"roster_id"`
	Points   *int64 `json:"points"`
	Wins     int64  `json:"wins"`
	Draws    int64  `json:"draws"`
	Losses   int64  `json:"losses"`
}

Stands represents the current standings in a substage.

type StreakScope

type StreakScope struct {
	Current int64 `json:"current"`
	Best    int64 `json:"best"`
	Worst   int64 `json:"worst"`
}

StreakScope is the second-level object holding streak statistics.

type Stream

type Stream struct {
	Id          int64        `json:"id,omitempty"`
	Username    string       `json:"username,omitempty"`
	DisplayName string       `json:"display_name,omitempty"`
	StatusText  string       `json:"status_text,omitempty"`
	ViewerCount int64        `json:"viewer_count"`
	Online      int64        `json:"online"`
	LastOnline  string       `json:"last_online,omitempty"`
	Images      StreamImages `json:"images,omitempty"`
	Url         string       `json:"url,omitempty"`
	Platform    Platform     `json:"platform,omitempty"`
}

Stream represents a broadcast on a third party platform.

type StreamImages

type StreamImages struct {
	Preview  string `json:"preview,omitempty"`
}

StreamImages represents the different keys for images a Stream can contain

type Substage

type Substage struct {
	TournamentId int64         `json:"tournament_id,omitempty"`
	StageId      int64         `json:"stage_id,omitempty"`
	Id           int64         `json:"id,omitempty"`
	Title        string        `json:"title,omitempty"`
	Tier         int64         `json:"tier"`
	Type         int64         `json:"type"`
	Order        int64         `json:"order"`
	Rules        SubstageRules `json:"rules"`
	Standing     []Standings   `json:"standings"`
	Series       []Series      `json:"series,omitempty"`
	Rosters      []Roster      `json:"rosters,omitempty"`
	DeletedAt    *string       `json:"deleted_at"`
}

Substage is the lowest structure of a Tournament and is a grouping of Series.

type SubstageRules

type SubstageRules struct {
	Advance struct {
		Number     *int64 `json:"number"`
		SubstageId *int64 `json:"substage_id"`
	} `json:"advance"`
	Descend struct {
		Number     *int64 `json:"number"`
		SubstageId *int64 `json:"substage_id"`
	} `json:"descend"`
	Points struct {
		Win   *int64 `json:"win"`
		Draw  *int64 `json:"draw"`
		Loss  *int64 `json:"loss"`
		Scope string `json:"scope"`
	}
}

SubstageRules hold information about the rules for a particular substage.

type Team

type Team struct {
	Id                  int64                `json:"id,omitempty"`
	Name                string               `json:"name,omitempty"`
	ShortName           string               `json:"short_name,omitempty"`
	DeletedAt           *string              `json:"deleted_at"`
	Images              TeamImages           `json:"images,omitempty"`
	Country             *Country             `json:"country"`
	TeamStats           TeamStats            `json:"team_stats,omitempty"`
	Players             *[]Player            `json:"players,omitempty"`
	Rosters             []DefaultRoster      `json:"rosters,omitempty"`
	UpcomingSeries      []Series             `json:"upcoming_series"`
	RecentSeries        []Series             `json:"recent_series"`
	Game                Game                 `json:"game,omitempty"`
	SocialMediaAccounts []SocialMediaAccount `json:"social_media_accounts,omitempty"`
}

Team represents a team that competes in Series' and Matches.

type TeamAgainst

type TeamAgainst struct {
	MatchId int64 `json:"match_id"`
	Against *Team `json:"against"` // Declared as pointer to avoid invalid recursive type
}

TeamAgainst is a collection of common data when examining specific stats. It is grouped with the specific stat in another struct.

type TeamImages

type TeamImages struct {
	Default   string `json:"default,omitempty"`
	Thumbnail string `json:"thumbnail,omitempty"`
	Fallback  bool   `json:"fallback"`
}

TeamImages represents the different keys for images a Team can contain

type TeamPlayByPlayStats

type TeamPlayByPlayStats interface{}

type TeamStats

type TeamStats struct {
	Streak struct {
		Series struct {
			StreakScope // defined in stats.go
		} `json:"series,omitempty"`
		Match struct {
			StreakScope // defined in stats.go
		} `json:"match,omitempty"`
	} `json:"streak,omitempty"`
	Winrate struct {
		Series struct {
			WinrateSeriesScope // defined in stats.go
		} `json:"series,omitempty"`
		Match struct {
			WinrateMatchScope // defined in stats.go
		} `json:"match,omitempty"`
	} `json:"winrate,omitempty"`
	Nemesis *struct {
		Series struct {
			Competitor Team  `json:"competitor,omitempty"` // defined in stats.go
			Losses     int64 `json:"losses"`
		} `json:"series,omitempty"`
		Match struct {
			Competitor Team  `json:"competitor,omitempty"` // defined in stats.go
			Losses     int64 `json:"losses"`
		} `json:"match,omitempty"`
	} `json:"nemesis,omitempty"`
	Dominating *struct {
		Series struct {
			Competitor Team  `json:"competitor,omitempty"` // defined in stats.go
			Wins       int64 `json:"wins"`
		} `json:"series,omitempty"`
		Match struct {
			Competitor Team  `json:"competitor,omitempty"` // defined in stats.go
			Wins       int64 `json:"wins"`
		} `json:"match,omitempty"`
	} `json:"dominating,omitempty"`
	PlayByPlay TeamPlayByPlayStats `json:"play_by_play"`
}

TeamStats holds performance statistics about a particular Team.

func (*TeamStats) UnmarshalJSON

func (t *TeamStats) UnmarshalJSON(data []byte) error

type Tournament

type Tournament struct {
	Id               int64            `json:"id,omitempty"`
	Title            string           `json:"title,omitempty"`
	ShortTitle       string           `json:"short_title,omitempty"`
	Country          Country          `json:"country,omitempty"`
	City             string           `json:"city,omitempty"`
	Tier             int64            `json:"tier"`
	Description      string           `json:"description,omitempty"`
	ShortDescription string           `json:"short_description,omitempty"`
	Format           string           `json:"format,omitempty"`
	Start            *string          `json:"start"`      // Datettime
	End              *string          `json:"end"`        // Datettime
	DeletedAt        *string          `json:"deleted_at"` // Datettime
	Url              string           `json:"url,omitempty"`
	HasPbpStats      bool             `json:"has_pbpstats"`
	Images           TournamentImages `json:"images,omitempty"`
	PrizepoolString  Prizepool        `json:"prizepool_string,omitempty"`
	Links            Links            `json:"links,omitempty"`
	NextSeries       *Series          `json:"next_series"`
	Series           []Series         `json:"series,omitempty"`  // Optional
	Stages           []Stage          `json:"stages,omitempty"`  // Optional
	Rosters          []Roster         `json:"rosters,omitempty"` // Optional
	Game             Game             `json:"game,omitempty"`
	Casters          []Caster         `json:"casters"`
}

Tournament represents a tournament (i.e a structured group of Series').

type TournamentImages

type TournamentImages struct {
	Default   string `json:"default,omitempty"`
	Thumbnail string `json:"thumbnail,omitempty"`
	Banner    string `json:"banner,omitempty"`
	Square    string `json:"square,omitempty"`
	Fallback  bool   `json:"fallback"`
}

TournamentImages represents the different keys for images a Tournament can contain

type Weapon

type Weapon struct {
	Images struct {
		Small string `json:"small"`
	} `json:"images"`
	Name string `json:"name"`
}

Weapon holds information about a CS:GO weapon.

type WinrateMatchScope

type WinrateMatchScope struct {
	Rate    float64         `json:"rate"`
	History int64           `json:"history"`
	PerMap  []WinratePerMap `json:"per_map"`
}

WinrateScope is a second-level object holding winrate statistics for matches.

type WinratePerFormat

type WinratePerFormat struct {
	BestOf  int64   `json:"best_of"`
	Rate    float64 `json:"rate"`
	History int64   `json:"history"`
}

WinratePerFormat holds the innermost JSON about winrates related to a specific format.

type WinratePerMap

type WinratePerMap struct {
	Map     Map     `json:"map,omitempty"`
	Rate    float64 `json:"rate"`
	History int64   `json:"history"`
}

WinratePerMap holds the innermost JSON about winrates related to a single map.

type WinrateSeriesScope

type WinrateSeriesScope struct {
	Rate      float64            `json:"rate"`
	History   int64              `json:"history"`
	PerFormat []WinratePerFormat `json:"per_format"`
}

WinrateScope is a second-level object holding winrate statistics for series'.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL