add helper function

This commit is contained in:
filifa 2024-07-20 15:08:53 -05:00
parent be70ee7330
commit bb58d07706
1 changed files with 14 additions and 9 deletions

View File

@ -63,6 +63,19 @@ func newWebsocket(gamePk string) (*statsapi.GamedayWebsocket, <-chan error, erro
return &ws, ch, err
}
func handleUnexpectedClose(ws *statsapi.GamedayWebsocket, feedResp []byte, gamePk string) error {
ws.Close()
newWs, _, err := newWebsocket(gamePk)
if err != nil {
return err
}
*ws = *newWs
feedResp, err = statsapi.RequestFeed(gamePk)
return err
}
func subscribe(cmd *cobra.Command, args []string) {
pkStr := strconv.Itoa(gamePk)
ws, _, err := newWebsocket(pkStr)
@ -90,19 +103,11 @@ func subscribe(cmd *cobra.Command, args []string) {
err = ws.ReadJSON(&p)
if websocket.IsUnexpectedCloseError(err, statsapi.GameFinalCode, statsapi.GameUnavailableCode) {
log.Println(err)
ws.Close()
ws, _, err = newWebsocket(pkStr)
err = handleUnexpectedClose(ws, feedResp, pkStr)
if err != nil {
log.Fatal(err)
}
defer ws.Close()
feedResp, err = statsapi.RequestFeed(pkStr)
if err != nil {
log.Fatal(err)
}
continue
} else if err != nil {
log.Fatal(err)