From 0c90c3e29df9ae7becb097653eb5e86b5aa1417f Mon Sep 17 00:00:00 2001 From: John O'Keefe Date: Thu, 14 Nov 2024 20:10:41 -0500 Subject: [PATCH] added check for 403 in get anilist watchlist --- AniListFunctions.go | 52 +++++++++++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/AniListFunctions.go b/AniListFunctions.go index 06469dc..f6d472c 100644 --- a/AniListFunctions.go +++ b/AniListFunctions.go @@ -360,27 +360,47 @@ func (a *App) GetAniListUserWatchingList(page int, perPage int, sort string) Ani }, } - returnedBody, _ := AniListQuery(body, true) + returnedBody, status := AniListQuery(body, true) + var badPost struct { + Errors []struct { + Message string `json:"message"` + Status int `json:"status"` + Locations []struct { + Line int `json:"line"` + Column int `json:"column"` + } `json:"locations"` + } `json:"errors"` + Data any `json:"data"` + } var post AniListCurrentUserWatchList - err := json.Unmarshal(returnedBody, &post) - if err != nil { - log.Printf("Failed at unmarshal, %s\n", err) - } - - // Getting the real total, finding the real last page and storing that in the Page info - statuses := post.Data.Page.MediaList[0].User.Statistics.Anime.Statuses - var total int - for _, status := range statuses { - if status.Status == "CURRENT" { - total = status.Count + if status == "200 OK" { + err := json.Unmarshal(returnedBody, &post) + if err != nil { + log.Printf("Failed at unmarshal, %s\n", err) } + // Getting the real total, finding the real last page and storing that in the Page info + statuses := post.Data.Page.MediaList[0].User.Statistics.Anime.Statuses + var total int + for _, status := range statuses { + if status.Status == "CURRENT" { + total = status.Count + } + } + + lastPage := total / perPage + + post.Data.Page.PageInfo.Total = total + post.Data.Page.PageInfo.LastPage = lastPage } - lastPage := total / perPage - - post.Data.Page.PageInfo.Total = total - post.Data.Page.PageInfo.LastPage = lastPage + if status == "403 Forbidden" { + err := json.Unmarshal(returnedBody, &badPost) + if err != nil { + log.Printf("Failed at unmarshal, %s\n", err) + } + log.Fatal(badPost.Errors[0].Message) + } return post }