diff --git a/AniListFunctions.go b/AniListFunctions.go index f6d472c..d80930c 100644 --- a/AniListFunctions.go +++ b/AniListFunctions.go @@ -31,12 +31,15 @@ func AniListQuery(body interface{}, login bool) (json.RawMessage, string) { defer res.Body.Close() returnedBody, err := io.ReadAll(res.Body) + if err != nil { + return nil, "Could not read the returned body." + } return returnedBody, res.Status } func (a *App) GetAniListItem(aniId int, login bool) AniListGetSingleAnime { - var user = a.GetAniListLoggedInUser() + user := a.GetAniListLoggedInUser() var neededVariables interface{} @@ -141,7 +144,7 @@ func (a *App) GetAniListItem(aniId int, login bool) AniListGetSingleAnime { returnedBody, status := AniListQuery(body, login) var post AniListGetSingleAnime - if status == "404 Not Found" && login == false { + if status == "404 Not Found" && !login { return post } @@ -154,7 +157,7 @@ func (a *App) GetAniListItem(aniId int, login bool) AniListGetSingleAnime { log.Printf("Failed at unmarshal, %s\n", err) } - if login == false { + if !login { post.Data.MediaList.UserID = user.Data.Viewer.ID post.Data.MediaList.Status = "" post.Data.MediaList.StartedAt.Year = 0 @@ -249,7 +252,7 @@ func (a *App) AniListSearch(query string) any { } func (a *App) GetAniListUserWatchingList(page int, perPage int, sort string) AniListCurrentUserWatchList { - var user = a.GetAniListLoggedInUser() + user := a.GetAniListLoggedInUser() type Variables struct { Page int `json:"page"` PerPage int `json:"perPage"` diff --git a/AniListUserFunctions.go b/AniListUserFunctions.go index c439673..7d247ff 100644 --- a/AniListUserFunctions.go +++ b/AniListUserFunctions.go @@ -30,11 +30,11 @@ var aniCtxShutdown, aniCancel = context.WithCancel(context.Background()) func (a *App) CheckIfAniListLoggedIn() bool { if (AniListJWT{} == aniListJwt) { - tokenType, err := aniRing.Get("anilistTokenType") - expiresIn, err := aniRing.Get("anilistTokenExpiresIn") - accessToken, err := aniRing.Get("anilistAccessToken") - refreshToken, err := aniRing.Get("anilistRefreshToken") - if err != nil || len(accessToken.Data) == 0 { + tokenType, tokenErr := aniRing.Get("anilistTokenType") + expiresIn, expiresInErr := aniRing.Get("anilistTokenExpiresIn") + refreshToken, refreshTokenErr := aniRing.Get("anilistRefreshToken") + accessToken, accessTokenErr := aniRing.Get("anilistAccessToken") + if (tokenErr != nil || expiresInErr != nil || refreshTokenErr != nil || accessTokenErr != nil) || len(accessToken.Data) == 0 { return false } else { aniListJwt.TokenType = string(tokenType.Data) @@ -50,11 +50,11 @@ func (a *App) CheckIfAniListLoggedIn() bool { func (a *App) AniListLogin() { if (AniListJWT{} == aniListJwt) { - tokenType, err := aniRing.Get("anilistTokenType") - expiresIn, err := aniRing.Get("anilistTokenExpiresIn") - accessToken, err := aniRing.Get("anilistAccessToken") - refreshToken, err := aniRing.Get("anilistRefreshToken") - if err != nil || len(accessToken.Data) == 0 { + tokenType, tokenErr := aniRing.Get("anilistTokenType") + expiresIn, expiresInErr := aniRing.Get("anilistTokenExpiresIn") + refreshToken, refreshTokenErr := aniRing.Get("anilistRefreshToken") + accessToken, accessTokenErr := aniRing.Get("anilistAccessToken") + if (tokenErr != nil || expiresInErr != nil || refreshTokenErr != nil || accessTokenErr != nil) || len(accessToken.Data) == 0 { getAniListCodeUrl := "https://anilist.co/api/v2/oauth/authorize?client_id=" + Environment.ANILIST_APP_ID + "&redirect_uri=" + Environment.ANILIST_CALLBACK_URI + "&response_type=code" runtime.BrowserOpenURL(*wailsContext, getAniListCodeUrl) @@ -160,6 +160,9 @@ func getAniListAuthorizationToken(content string) AniListJWT { defer res.Body.Close() returnedBody, err := io.ReadAll(res.Body) + if err != nil { + log.Printf("Could not read returned body, %s\n.", err) + } var post AniListJWT err = json.Unmarshal(returnedBody, &post) @@ -204,13 +207,12 @@ func (a *App) GetAniListLoggedInUser() AniListUser { func (a *App) LogoutAniList() string { if (AniListJWT{} != aniListJwt) { - err := aniRing.Remove("anilistTokenType") - err = aniRing.Remove("anilistTokenExpiresIn") - err = aniRing.Remove("anilistAccessToken") - err = aniRing.Remove("anilistRefreshToken") - - if err != nil { - fmt.Println("AniList Logout Failed", err) + typeErr := aniRing.Remove("anilistTokenType") + expiresInErr := aniRing.Remove("anilistTokenExpiresIn") + accessTokenErr := aniRing.Remove("anilistAccessToken") + refreshTokenErr := aniRing.Remove("anilistRefreshToken") + if typeErr != nil || expiresInErr != nil || accessTokenErr != nil || refreshTokenErr != nil { + fmt.Println("AniList Logout Failed") } aniListJwt = AniListJWT{} } diff --git a/MALTypes.go b/MALTypes.go index 2248902..c2534ce 100644 --- a/MALTypes.go +++ b/MALTypes.go @@ -46,10 +46,10 @@ type MALWatchlist struct { Id int `json:"id" ts_type:"id"` Title string `json:"title" ts_type:"title"` MainPicture struct { - Medium string `json:"medium" json:"medium"` - Large string `json:"large" json:"large"` - } `json:"main_picture" json:"mainPicture"` - } `json:"node" json:"node"` + Medium string `json:"medium" ts_type:"medium"` + Large string `json:"large" ts_type:"large"` + } `json:"main_picture" ts_type:"mainPicture"` + } `json:"node" ts_type:"node"` ListStatus struct { Status string `json:"status" ts_type:"status"` Score int `json:"score" ts_type:"score"` @@ -59,7 +59,7 @@ type MALWatchlist struct { StartDate string `json:"start_date" ts_type:"startDate"` FinishDate string `json:"finish_date" ts_type:"finishDate"` } `json:"list_status" ts_type:"listStatus"` - } `json:"data" json:"data"` + } `json:"data" ts_type:"data"` Paging struct { Previous string `json:"previous" ts_type:"previous"` Next string `json:"next" ts_type:"next"` @@ -70,9 +70,9 @@ type MALAnime struct { Id int `json:"id" ts_type:"id"` Title string `json:"title" ts_type:"title"` MainPicture struct { - Large string `json:"large" json:"large"` - Medium string `json:"medium" json:"medium"` - } `json:"main_picture" json:"mainPicture"` + Large string `json:"large" ts_type:"large"` + Medium string `json:"medium" ts_type:"medium"` + } `json:"main_picture" ts_type:"mainPicture"` AlternativeTitles struct { Synonyms []string `json:"synonyms" ts_type:"synonyms"` En string `json:"en" ts_type:"en"` diff --git a/MALUserFunctions.go b/MALUserFunctions.go index 04f4d27..383e34f 100644 --- a/MALUserFunctions.go +++ b/MALUserFunctions.go @@ -50,7 +50,7 @@ func base64URLEncode(str []byte) string { func verifier() (*CodeVerifier, error) { r := rand.New(rand.NewSource(time.Now().UnixNano())) - b := make([]byte, length, length) + b := make([]byte, length) for i := 0; i < length; i++ { b[i] = byte(r.Intn(255)) } @@ -70,17 +70,19 @@ func (v *CodeVerifier) CodeChallengeS256() string { } func (a *App) CheckIfMyAnimeListLoggedIn() bool { + fmt.Println("check function reached") if (MyAnimeListJWT{} == myAnimeListJwt) { - tokenType, err := myAnimeListRing.Get("MyAnimeListTokenType") - expiresIn, err := myAnimeListRing.Get("MyAnimeListExpiresIn") - accessToken, err := myAnimeListRing.Get("MyAnimeListAccessToken") - refreshToken, err := myAnimeListRing.Get("MyAnimeListRefreshToken") - if err != nil || len(accessToken.Data) == 0 { + tokenType, tokenErr := myAnimeListRing.Get("MyAnimeListTokenType") + expiresIn, expiresInErr := myAnimeListRing.Get("MyAnimeListExpiresIn") + refreshToken, refreshTokenErr := myAnimeListRing.Get("MyAnimeListAccessToken") + accessToken, accessTokenErr := myAnimeListRing.Get("MyAnimeListRefreshToken") + if (tokenErr != nil || expiresInErr != nil || refreshTokenErr != nil || accessTokenErr != nil) || len(accessToken.Data) == 0 { return false } else { + var expresInConvertErr error myAnimeListJwt.TokenType = string(tokenType.Data) - myAnimeListJwt.ExpiresIn, err = strconv.Atoi(string(expiresIn.Data)) - if err != nil { + myAnimeListJwt.ExpiresIn, expresInConvertErr = strconv.Atoi(string(expiresIn.Data)) + if expresInConvertErr != nil { fmt.Println("unable to convert string to int") } myAnimeListJwt.AccessToken = string(accessToken.Data) @@ -93,12 +95,14 @@ func (a *App) CheckIfMyAnimeListLoggedIn() bool { } func (a *App) MyAnimeListLogin() { - if a.CheckIfMyAnimeListLoggedIn() == false { - tokenType, err := myAnimeListRing.Get("MyAnimeListTokenType") - expiresIn, err := myAnimeListRing.Get("MyAnimeListExpiresIn") - accessToken, err := myAnimeListRing.Get("MyAnimeListAccessToken") - refreshToken, err := myAnimeListRing.Get("MyAnimeListRefreshToken") - if err != nil || len(accessToken.Data) == 0 { + fmt.Println("login function reached") + if !a.CheckIfMyAnimeListLoggedIn() { + fmt.Println("check logged in function failed") + tokenType, tokenErr := myAnimeListRing.Get("MyAnimeListTokenType") + expiresIn, expiresInErr := myAnimeListRing.Get("MyAnimeListExpiresIn") + refreshToken, refreshTokenErr := myAnimeListRing.Get("MyAnimeListAccessToken") + accessToken, accessTokenErr := myAnimeListRing.Get("MyAnimeListRefreshToken") + if (tokenErr != nil || expiresInErr != nil || refreshTokenErr != nil || accessTokenErr != nil) || len(accessToken.Data) == 0 { verifier, _ := verifier() getMyAnimeListCodeUrl := "https://myanimelist.net/v1/oauth2/authorize?response_type=code&client_id=" + Environment.MAL_CLIENT_ID + "&redirect_uri=" + Environment.MAL_CALLBACK_URI + "&code_challenge=" + verifier.Value + "&code_challenge_method=plain" runtime.BrowserOpenURL(*wailsContext, getMyAnimeListCodeUrl) @@ -107,9 +111,10 @@ func (a *App) MyAnimeListLogin() { a.handleMyAnimeListCallback(serverDone, verifier) serverDone.Wait() } else { + var expresInConvertErr error myAnimeListJwt.TokenType = string(tokenType.Data) - myAnimeListJwt.ExpiresIn, err = strconv.Atoi(string(expiresIn.Data)) - if err != nil { + myAnimeListJwt.ExpiresIn, expresInConvertErr = strconv.Atoi(string(expiresIn.Data)) + if expresInConvertErr != nil { fmt.Println("unable to convert string to int in Login function") } myAnimeListJwt.AccessToken = string(accessToken.Data) @@ -218,6 +223,9 @@ func getMyAnimeListAuthorizationToken(content string, verifier *CodeVerifier) My defer res.Body.Close() returnedBody, err := io.ReadAll(res.Body) + if err != nil { + log.Printf("Could not read returned body, %s\n", err) + } var post MyAnimeListJWT err = json.Unmarshal(returnedBody, &post) @@ -265,6 +273,9 @@ func refreshMyAnimeListAuthorizationToken() { defer res.Body.Close() returnedBody, err := io.ReadAll(res.Body) + if err != nil { + log.Printf("Could not read returned body, %s\n", err) + } err = json.Unmarshal(returnedBody, &myAnimeListJwt) if err != nil { @@ -291,12 +302,9 @@ func refreshMyAnimeListAuthorizationToken() { Title: "MyAnimeList Authorization", Message: "It is now safe to close your browser tab", }) - if err != nil { fmt.Println(err) } - - return } func (a *App) GetMyAnimeListLoggedInUser() MyAnimeListUser { @@ -311,7 +319,6 @@ func (a *App) GetMyAnimeListLoggedInUser() MyAnimeListUser { req.Header.Add("myAnimeList-api-key", Environment.MAL_CLIENT_ID) response, err := client.Do(req) - if err != nil { log.Printf("Failed at request, %s\n", err) return MyAnimeListUser{} @@ -333,13 +340,12 @@ func (a *App) GetMyAnimeListLoggedInUser() MyAnimeListUser { func (a *App) LogoutMyAnimeList() string { if (MyAnimeListJWT{} != myAnimeListJwt) { - err := myAnimeListRing.Remove("MyAnimeListTokenType") - err = myAnimeListRing.Remove("MyAnimeListExpiresIn") - err = myAnimeListRing.Remove("MyAnimeListAccessToken") - err = myAnimeListRing.Remove("MyAnimeListRefreshToken") - - if err != nil { - fmt.Println("MAL Logout Failed", err) + typeErr := myAnimeListRing.Remove("MyAnimeListTokenType") + expiresInErr := myAnimeListRing.Remove("MyAnimeListExpiresIn") + accessTokenErr := myAnimeListRing.Remove("MyAnimeListAccessToken") + refreshTokenErr := myAnimeListRing.Remove("MyAnimeListRefreshToken") + if typeErr != nil || expiresInErr != nil || accessTokenErr != nil || refreshTokenErr != nil { + fmt.Println("MAL Logout Failed") } myAnimeListJwt = MyAnimeListJWT{} } diff --git a/SimklFunctions.go b/SimklFunctions.go index d800d2d..a7be06a 100644 --- a/SimklFunctions.go +++ b/SimklFunctions.go @@ -31,7 +31,6 @@ func SimklHelper(method string, url string, body interface{}) json.RawMessage { req.Header.Add("simkl-api-key", Environment.SIMKL_CLIENT_ID) resp, err := client.Do(req) - if err != nil { fmt.Println("Errored when sending request to the server") message, _ := json.Marshal(struct { @@ -47,7 +46,6 @@ func SimklHelper(method string, url string, body interface{}) json.RawMessage { respBody, _ := io.ReadAll(resp.Body) return respBody - } func (a *App) SimklGetUserWatchlist() SimklWatchListType { @@ -62,7 +60,6 @@ func (a *App) SimklGetUserWatchlist() SimklWatchListType { } err := json.Unmarshal(respBody, &errCheck) - if err != nil { log.Printf("Failed at unmarshal, %s\n", err) } @@ -85,7 +82,6 @@ func (a *App) SimklGetUserWatchlist() SimklWatchListType { } func (a *App) SimklSyncEpisodes(anime SimklAnime, progress int) SimklAnime { - var episodes []Episode var url string var shows []SimklPostShow @@ -140,7 +136,7 @@ func (a *App) SimklSyncEpisodes(anime SimklAnime, progress int) SimklAnime { func (a *App) SimklSyncRating(anime SimklAnime, rating int) SimklAnime { var url string - var showWithRating = ShowWithRating{ + showWithRating := ShowWithRating{ Title: anime.Show.Title, Ids: Ids{ Simkl: anime.Show.Ids.Simkl, @@ -150,7 +146,7 @@ func (a *App) SimklSyncRating(anime SimklAnime, rating int) SimklAnime { Rating: rating, } - var showWithoutRating = ShowWithoutRating{ + showWithoutRating := ShowWithoutRating{ Title: anime.Show.Title, Ids: Ids{ Simkl: anime.Show.Ids.Simkl, @@ -197,7 +193,7 @@ func (a *App) SimklSyncRating(anime SimklAnime, rating int) SimklAnime { func (a *App) SimklSyncStatus(anime SimklAnime, status string) SimklAnime { url := "https://api.simkl.com/sync/add-to-list" - var show = SimklShowStatus{ + show := SimklShowStatus{ Title: anime.Show.Title, Ids: Ids{ Simkl: anime.Show.Ids.Simkl, @@ -300,7 +296,7 @@ func (a *App) SimklSyncRemove(anime SimklAnime) bool { url := "https://api.simkl.com/sync/history/remove" var showArray []SimklShowStatus - var singleShow = SimklShowStatus{ + singleShow := SimklShowStatus{ Title: anime.Show.Title, Ids: Ids{ Simkl: anime.Show.Ids.Simkl, @@ -349,5 +345,4 @@ func WatchListUpdate(anime SimklAnime) { if !updated { SimklWatchList.Anime = append(SimklWatchList.Anime, anime) } - return } diff --git a/SimklUserFunctions.go b/SimklUserFunctions.go index ad9b2ba..45ecbfd 100644 --- a/SimklUserFunctions.go +++ b/SimklUserFunctions.go @@ -28,10 +28,10 @@ var simklCtxShutdown, simklCancel = context.WithCancel(context.Background()) func (a *App) CheckIfSimklLoggedIn() bool { if (SimklJWT{} == simklJwt) { - tokenType, err := simklRing.Get("SimklTokenType") - accessToken, err := simklRing.Get("SimklAccessToken") - scope, err := simklRing.Get("SimklScope") - if err != nil || len(accessToken.Data) == 0 { + tokenType, tokenTypeErr := simklRing.Get("SimklTokenType") + accessToken, accessTokenErr := simklRing.Get("SimklAccessToken") + scope, scopeErr := simklRing.Get("SimklScope") + if (tokenTypeErr != nil || accessTokenErr != nil || scopeErr != nil) || len(accessToken.Data) == 0 { return false } else { simklJwt.TokenType = string(tokenType.Data) @@ -45,11 +45,11 @@ func (a *App) CheckIfSimklLoggedIn() bool { } func (a *App) SimklLogin() { - if a.CheckIfSimklLoggedIn() == false { - tokenType, err := simklRing.Get("SimklTokenType") - accessToken, err := simklRing.Get("SimklAccessToken") - scope, err := simklRing.Get("SimklScope") - if err != nil || len(accessToken.Data) == 0 { + if !a.CheckIfSimklLoggedIn() { + tokenType, tokenTypeErr := simklRing.Get("SimklTokenType") + accessToken, accessTokenErr := simklRing.Get("SimklAccessToken") + scope, scopeErr := simklRing.Get("SimklScope") + if (tokenTypeErr != nil || accessTokenErr != nil || scopeErr != nil) || len(accessToken.Data) == 0 { getSimklCodeUrl := "https://simkl.com/oauth/authorize?response_type=code&client_id=" + Environment.SIMKL_CLIENT_ID + "&redirect_uri=" + Environment.SIMKL_CALLBACK_URI runtime.BrowserOpenURL(*wailsContext, getSimklCodeUrl) @@ -155,6 +155,9 @@ func getSimklAuthorizationToken(content string) SimklJWT { defer res.Body.Close() returnedBody, err := io.ReadAll(res.Body) + if err != nil { + log.Printf("Could not read returned body, %s\n.", err) + } var post SimklJWT err = json.Unmarshal(returnedBody, &post) @@ -177,7 +180,6 @@ func (a *App) GetSimklLoggedInUser() SimklUser { req.Header.Add("simkl-api-key", Environment.SIMKL_CLIENT_ID) response, err := client.Do(req) - if err != nil { log.Printf("Failed at request, %s\n", err) return SimklUser{} @@ -193,7 +195,6 @@ func (a *App) GetSimklLoggedInUser() SimklUser { } err = json.Unmarshal(respBody, &errCheck) - if err != nil { log.Printf("Failed at unmarshal, %s\n", err) } @@ -215,12 +216,12 @@ func (a *App) GetSimklLoggedInUser() SimklUser { func (a *App) LogoutSimkl() string { if (SimklJWT{} != simklJwt) { - err := simklRing.Remove("SimklTokenType") - err = simklRing.Remove("SimklAccessToken") - err = simklRing.Remove("SimklScope") + tokenTypeErr := simklRing.Remove("SimklTokenType") + accessTokenErr := simklRing.Remove("SimklAccessToken") + scopeErr := simklRing.Remove("SimklScope") - if err != nil { - fmt.Println("Simkl Logout Failed", err) + if tokenTypeErr != nil || accessTokenErr != nil || scopeErr != nil { + fmt.Println("Simkl Logout Failed") } simklJwt = SimklJWT{} }