diff --git a/game.go b/game.go deleted file mode 100644 index 911d92a..0000000 --- a/game.go +++ /dev/null @@ -1,107 +0,0 @@ -package main - -import ( - "log" - - "scm.dairydemon.net/filifa/mlblive/internal/statsapi" -) - -type Team struct { - Location string - Name string -} - -type Game struct { - GamePk string - HomeTeam Team - AwayTeam Team - HomeScore uint - AwayScore uint - Plays []statsapi.Play -} - -func feedUpdate(gamePk string, ts *string) (statsapi.Play, error) { - feed, err := statsapi.Feed(gamePk) - if err != nil { - return statsapi.Play{}, err - } - - *ts = feed.MetaData.TimeStamp - return feed.LiveData.Plays.CurrentPlay, nil -} - -func patchUpdate(patches statsapi.DiffPatchResponse, ts *string) []statsapi.Play { - var plays []statsapi.Play - var err error - for _, patch := range patches { - var play statsapi.Play - play.Patch(patch) - plays = append(plays, play) - - *ts, err = patch.Timestamp() - if err != nil { - continue - } - } - - return plays -} - -func (g *Game) Update(ts *string, updateId string) error { - var plays []statsapi.Play - - patches, err := statsapi.DiffPatch(g.GamePk, *ts, updateId) - if err != nil { - log.Println("feed update") - var p statsapi.Play - p, err = feedUpdate(g.GamePk, ts) - if err != nil { - return err - } - - plays = []statsapi.Play{p} - } else { - log.Println("patch update") - plays = patchUpdate(patches, ts) - } - - for _, play := range plays { - i := play.AtBatIndex - if i >= len(g.Plays) { - g.Plays = append(g.Plays, play) - } - } - - return nil -} - -func InitGame(feed statsapi.FeedResponse) (*Game, error) { - hometeam := Team{ - Location: feed.GameData.Teams.Home.LocationName, - Name: feed.GameData.Teams.Home.TeamName, - } - awayteam := Team{ - Location: feed.GameData.Teams.Away.LocationName, - Name: feed.GameData.Teams.Away.TeamName, - } - - homescore, err := feed.LiveData.Linescore.Teams.Home.Runs.Int64() - if err != nil { - return nil, err - } - awayscore, err := feed.LiveData.Linescore.Teams.Away.Runs.Int64() - if err != nil { - return nil, err - } - - game := Game{ - GamePk: feed.GamePk, - HomeTeam: hometeam, - AwayTeam: awayteam, - HomeScore: uint(homescore), - AwayScore: uint(awayscore), - Plays: feed.LiveData.Plays.AllPlays, - } - - return &game, nil -}