From 872aeb175a908f2fece0848c7163c2ab57b40571 Mon Sep 17 00:00:00 2001 From: Charles Ewert Date: Thu, 18 Jul 2024 11:47:57 -0400 Subject: [PATCH] prevent crashes by validating currentScene and currentEpisode --- source/Main.bs | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/source/Main.bs b/source/Main.bs index 90e4c55ed..814d1dff7 100644 --- a/source/Main.bs +++ b/source/Main.bs @@ -215,22 +215,28 @@ sub Main (args as dynamic) as void else if isNodeEvent(msg, "refreshSeasonDetailsData") startLoadingSpinner() - currentEpisode = m.global.queueManager.callFunc("getCurrentItem") currentScene = m.global.sceneManager.callFunc("getActiveScene") - ' Find the object in the scene's data and update its json data - for i = 0 to currentScene.objects.Items.count() - 1 - if LCase(currentScene.objects.Items[i].id) = LCase(currentEpisode.id) - currentScene.objects.Items[i].json = api.users.GetItem(m.global.session.user.id, currentEpisode.id) - m.global.queueManager.callFunc("setTopStartingPoint", currentScene.objects.Items[i].json.UserData.PlaybackPositionTicks) - exit for + if isValid(currentScene) and isValid(currentScene.objects) and isValid(currentScene.seasonData) + currentEpisode = m.global.queueManager.callFunc("getCurrentItem") + + if isValid(currentScene.objects.Items) and isValid(currentEpisode) and isValid(currentEpisode.id) + ' Find the object in the scene's data and update its json data + for i = 0 to currentScene.objects.Items.count() - 1 + if LCase(currentScene.objects.Items[i].id) = LCase(currentEpisode.id) + currentScene.objects.Items[i].json = api.users.GetItem(m.global.session.user.id, currentEpisode.id) + m.global.queueManager.callFunc("setTopStartingPoint", currentScene.objects.Items[i].json.UserData.PlaybackPositionTicks) + exit for + end if + end for end if - end for - seasonMetaData = ItemMetaData(currentScene.seasonData.id) - currentScene.seasonData = seasonMetaData.json - currentScene.episodeObjects = currentScene.objects - currentScene.callFunc("updateSeason") + seasonMetaData = ItemMetaData(currentScene.seasonData.id) + currentScene.seasonData = seasonMetaData.json + currentScene.episodeObjects = currentScene.objects + currentScene.callFunc("updateSeason") + end if + stopLoadingSpinner() else if isNodeEvent(msg, "refreshMovieDetailsData") startLoadingSpinner()