get rid of internal
This commit is contained in:
parent
0c4f307d29
commit
7526a60c0e
|
@ -29,7 +29,6 @@ import (
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"scm.dairydemon.net/filifa/mlbstats/api"
|
"scm.dairydemon.net/filifa/mlbstats/api"
|
||||||
"scm.dairydemon.net/filifa/mlbstats/api/models"
|
"scm.dairydemon.net/filifa/mlbstats/api/models"
|
||||||
"scm.dairydemon.net/filifa/mlbstats/cmd/internal/statsapi"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var gamePk int32
|
var gamePk int32
|
||||||
|
@ -82,19 +81,19 @@ func patch(feed *models.BaseballGameRestObject, client *api.APIClient) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func newWebsocket(gamePk int32) (*statsapi.GamedayWebsocket, <-chan error, error) {
|
func newWebsocket(gamePk int32) (*gamedayWebsocket, <-chan error, error) {
|
||||||
ws, err := statsapi.NewGamedayWebsocket(gamePk)
|
ws, err := newGamedayWebsocket(gamePk)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
ch := make(chan error)
|
ch := make(chan error)
|
||||||
go ws.KeepAlive(10*time.Second, ch)
|
go ws.keepAlive(10*time.Second, ch)
|
||||||
|
|
||||||
return ws, ch, err
|
return ws, ch, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleUnexpectedClose(feed *models.BaseballGameRestObject, client *api.APIClient) (*statsapi.GamedayWebsocket, error) {
|
func handleUnexpectedClose(feed *models.BaseballGameRestObject, client *api.APIClient) (*gamedayWebsocket, error) {
|
||||||
ws, _, err := newWebsocket(feed.GamePk)
|
ws, _, err := newWebsocket(feed.GamePk)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -105,10 +104,10 @@ func handleUnexpectedClose(feed *models.BaseballGameRestObject, client *api.APIC
|
||||||
return ws, err
|
return ws, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateFeed(feed *models.BaseballGameRestObject, ws *statsapi.GamedayWebsocket, client *api.APIClient) error {
|
func updateFeed(feed *models.BaseballGameRestObject, ws *gamedayWebsocket, client *api.APIClient) error {
|
||||||
var p statsapi.Push
|
var p push
|
||||||
err := ws.ReadJSON(&p)
|
err := ws.ReadJSON(&p)
|
||||||
if websocket.IsUnexpectedCloseError(err, statsapi.GameFinalCode, statsapi.GameUnavailableCode) {
|
if websocket.IsUnexpectedCloseError(err, GameFinalCode, GameUnavailableCode) {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
|
|
||||||
newWs, err := handleUnexpectedClose(feed, client)
|
newWs, err := handleUnexpectedClose(feed, client)
|
||||||
|
|
|
@ -13,7 +13,7 @@ PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||||
You should have received a copy of the GNU General Public License along with
|
You should have received a copy of the GNU General Public License along with
|
||||||
this program. If not, see <http://www.gnu.org/licenses/>.
|
this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
package statsapi
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"net/url"
|
"net/url"
|
||||||
|
@ -25,7 +25,7 @@ import (
|
||||||
|
|
||||||
// Push is a struct for holding data sent to us through the websocket that we
|
// Push is a struct for holding data sent to us through the websocket that we
|
||||||
// care about.
|
// care about.
|
||||||
type Push struct {
|
type push struct {
|
||||||
UpdateId string
|
UpdateId string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,15 +36,15 @@ const (
|
||||||
|
|
||||||
// GamedayWebsocket is a struct for establishing a websocket connection with
|
// GamedayWebsocket is a struct for establishing a websocket connection with
|
||||||
// the Stats API.
|
// the Stats API.
|
||||||
type GamedayWebsocket struct {
|
type gamedayWebsocket struct {
|
||||||
baseURL url.URL
|
baseURL url.URL
|
||||||
*websocket.Conn
|
*websocket.Conn
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewGamedayWebsocket creates a statsapi.GamedayWebsocket using the Stats API
|
// NewGamedayWebsocket creates a statsapi.GamedayWebsocket using the Stats API
|
||||||
// websocket URL and establishes a connection.
|
// websocket URL and establishes a connection.
|
||||||
func NewGamedayWebsocket(gamePk int32) (*GamedayWebsocket, error) {
|
func newGamedayWebsocket(gamePk int32) (*gamedayWebsocket, error) {
|
||||||
ws := GamedayWebsocket{
|
ws := gamedayWebsocket{
|
||||||
baseURL: url.URL{
|
baseURL: url.URL{
|
||||||
Scheme: "wss",
|
Scheme: "wss",
|
||||||
Host: "ws.statsapi.mlb.com",
|
Host: "ws.statsapi.mlb.com",
|
||||||
|
@ -55,7 +55,7 @@ func NewGamedayWebsocket(gamePk int32) (*GamedayWebsocket, error) {
|
||||||
return &ws, err
|
return &ws, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (g *GamedayWebsocket) init(gamePk int32) error {
|
func (g *gamedayWebsocket) init(gamePk int32) error {
|
||||||
endpoint := url.URL{
|
endpoint := url.URL{
|
||||||
Path: "api/v1/game/push/subscribe/gameday/" + strconv.Itoa(int(gamePk)),
|
Path: "api/v1/game/push/subscribe/gameday/" + strconv.Itoa(int(gamePk)),
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ func (g *GamedayWebsocket) init(gamePk int32) error {
|
||||||
|
|
||||||
// SendKeepAlive sends the keep-alive message observed to be sent by MLB
|
// SendKeepAlive sends the keep-alive message observed to be sent by MLB
|
||||||
// Gameday ("Gameday5").
|
// Gameday ("Gameday5").
|
||||||
func (g *GamedayWebsocket) SendKeepAlive() error {
|
func (g *gamedayWebsocket) sendKeepAlive() error {
|
||||||
msg := []byte("Gameday5")
|
msg := []byte("Gameday5")
|
||||||
err := g.Conn.WriteMessage(websocket.TextMessage, msg)
|
err := g.Conn.WriteMessage(websocket.TextMessage, msg)
|
||||||
return err
|
return err
|
||||||
|
@ -77,12 +77,12 @@ func (g *GamedayWebsocket) SendKeepAlive() error {
|
||||||
|
|
||||||
// KeepAlive sends the keep-alive message on a certain interval and sends any
|
// KeepAlive sends the keep-alive message on a certain interval and sends any
|
||||||
// errors to ch.
|
// errors to ch.
|
||||||
func (g *GamedayWebsocket) KeepAlive(interval time.Duration, ch chan<- error) {
|
func (g *gamedayWebsocket) keepAlive(interval time.Duration, ch chan<- error) {
|
||||||
ticker := time.NewTicker(interval)
|
ticker := time.NewTicker(interval)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
|
|
||||||
for range ticker.C {
|
for range ticker.C {
|
||||||
err := g.SendKeepAlive()
|
err := g.sendKeepAlive()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ch <- err
|
ch <- err
|
||||||
}
|
}
|
Loading…
Reference in New Issue