From 72bc40ed9728ea44f4e2c62634fb05de41485ef1 Mon Sep 17 00:00:00 2001 From: Divarion-D Date: Wed, 28 Jan 2026 20:04:39 +0300 Subject: [PATCH] Fix: Improve checks for TMDb API key and genre handling in watch_item and player_api --- src/crons/plex.php | 2 +- src/includes/cli/watch_item.php | 12 +++++++----- src/www/player_api.php | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/crons/plex.php b/src/crons/plex.php index a80bce24..95f7af74 100644 --- a/src/crons/plex.php +++ b/src/crons/plex.php @@ -28,7 +28,7 @@ if (posix_getpwuid(posix_geteuid())['name'] == 'xc_vm') { cli_set_process_title('XC_VM[Plex Sync]'); $rScanOffset = (intval(CoreUtilities::$rSettings['scan_seconds']) ?: 3600); set_time_limit(0); - if (strlen(CoreUtilities::$rSettings['tmdb_api_key']) != 0) { + if (!empty(CoreUtilities::$rSettings['tmdb_api_key'])) { loadCron(); } else { exit('No TMDb API key.'); diff --git a/src/includes/cli/watch_item.php b/src/includes/cli/watch_item.php index 0b7e4adf..1a0901ba 100644 --- a/src/includes/cli/watch_item.php +++ b/src/includes/cli/watch_item.php @@ -368,16 +368,18 @@ function loadcli() { } $rImportArray['order'] = getNextOrder(); $rImportArray['tmdb_language'] = $rLanguage; - if (count($rCategoryIDs) == 0) { + if (count($rCategoryIDs) == 0 && !empty($rMovieData['genres']) && is_array($rMovieData['genres'])) { if (0 < $rThreadData['max_genres']) { - $rParsed = array_slice($rMovieData['genres'], 0, $rThreadData['max_genres']); + $rParsed = array_slice($rMovieData['genres'], 0, (int) $rThreadData['max_genres']); } else { $rParsed = $rMovieData['genres']; } + foreach ($rParsed as $rGenre) { - $rCategoryID = intval($rWatchCategories[1][intval($rGenre['id'])]['category_id']); - if ($rCategoryID > 0) { - if (!in_array($rCategoryID, $rCategoryIDs)) { + $rGenreId = (int) ($rGenre['id'] ?? 0); + if ($rGenreId > 0 && isset($rWatchCategories[1][$rGenreId]['category_id'])) { + $rCategoryID = (int) $rWatchCategories[1][$rGenreId]['category_id']; + if ($rCategoryID > 0 && !in_array($rCategoryID, $rCategoryIDs, true)) { $rCategoryIDs[] = $rCategoryID; } } diff --git a/src/www/player_api.php b/src/www/player_api.php index efe0335c..5ba26ce7 100644 --- a/src/www/player_api.php +++ b/src/www/player_api.php @@ -175,9 +175,9 @@ if ($rUserInfo) { } $rBackdrops = json_decode($rSeriesInfo['backdrop_path'], true); - if (count($rBackdrops) > 0) { - foreach (range(0, count($rBackdrops) - 1) as $i) { - $rBackdrops[$i] = StreamingUtilities::validateImage($rBackdrops[$i]); + if (!empty($rBackdrops) && is_array($rBackdrops)) { + foreach ($rBackdrops as $i => $rBackdrop) { + $rBackdrops[$i] = StreamingUtilities::validateImage($rBackdrop); } } $rating = is_numeric($rSeriesInfo['rating']) ? floatval($rSeriesInfo['rating']) : 0.0;