From ba56926dc226a1a656b614e60d373a10c32475dd Mon Sep 17 00:00:00 2001 From: Martin Date: Wed, 10 Jun 2026 10:35:33 -0400 Subject: [PATCH] chore: add diagnostic logging for pre-roll bumpers (v1.0.0.6) Helps diagnose why a Trailer Pre-Roll/Feature Pre-Roll bumper isn't playing by logging invalid library IDs, empty library results, and the movie picked. --- ...fin.Plugin.CinemaTrailers4Jellyfins.csproj | 4 ++-- .../Services/TrailerIntroProvider.cs | 24 ++++++++++++++++--- build.yaml | 10 ++++---- 3 files changed, 28 insertions(+), 10 deletions(-) diff --git a/Jellyfin.Plugin.CinemaTrailers4Jellyfins/Jellyfin.Plugin.CinemaTrailers4Jellyfins.csproj b/Jellyfin.Plugin.CinemaTrailers4Jellyfins/Jellyfin.Plugin.CinemaTrailers4Jellyfins.csproj index 18f2b0e..9bc2552 100644 --- a/Jellyfin.Plugin.CinemaTrailers4Jellyfins/Jellyfin.Plugin.CinemaTrailers4Jellyfins.csproj +++ b/Jellyfin.Plugin.CinemaTrailers4Jellyfins/Jellyfin.Plugin.CinemaTrailers4Jellyfins.csproj @@ -3,8 +3,8 @@ net9.0 Jellyfin.Plugin.CinemaTrailers4Jellyfins - 1.0.0.5 - 1.0.0.5 + 1.0.0.6 + 1.0.0.6 enable false false diff --git a/Jellyfin.Plugin.CinemaTrailers4Jellyfins/Services/TrailerIntroProvider.cs b/Jellyfin.Plugin.CinemaTrailers4Jellyfins/Services/TrailerIntroProvider.cs index 4859404..ac05cbb 100644 --- a/Jellyfin.Plugin.CinemaTrailers4Jellyfins/Services/TrailerIntroProvider.cs +++ b/Jellyfin.Plugin.CinemaTrailers4Jellyfins/Services/TrailerIntroProvider.cs @@ -91,7 +91,7 @@ namespace Jellyfin.Plugin.CinemaTrailers4Jellyfins.Services if (preRollEnabled) { - var preRoll = GetRandomLibraryMovieIntro(config.TrailerPreRollLibraryId, item.Id); + var preRoll = GetRandomLibraryMovieIntro("Trailer Pre-Roll", config.TrailerPreRollLibraryId, item.Id); if (preRoll != null) intros.Add(preRoll); } @@ -145,7 +145,7 @@ namespace Jellyfin.Plugin.CinemaTrailers4Jellyfins.Services if (featurePreRollEnabled) { - var featureRoll = GetRandomLibraryMovieIntro(config.FeaturePreRollLibraryId, item.Id); + var featureRoll = GetRandomLibraryMovieIntro("Feature Pre-Roll", config.FeaturePreRollLibraryId, item.Id); if (featureRoll != null) intros.Add(featureRoll); } @@ -157,10 +157,16 @@ namespace Jellyfin.Plugin.CinemaTrailers4Jellyfins.Services /// Picks a random Movie from the given Jellyfin library (VirtualFolder ItemId) to use as a /// pre-roll/post-roll bumper, excluding the item currently being played. /// - private IntroInfo? GetRandomLibraryMovieIntro(string libraryId, Guid excludeId) + private IntroInfo? GetRandomLibraryMovieIntro(string label, string libraryId, Guid excludeId) { if (!Guid.TryParse(libraryId, out var parsedId)) + { + _logger.LogWarning( + "|CinemaTrailers4Jellyfins| {Label} library ID '{LibraryId}' is not a valid GUID — check the plugin settings.", + label, + libraryId); return null; + } var movies = _libraryManager .GetItemList(new InternalItemsQuery @@ -174,9 +180,21 @@ namespace Jellyfin.Plugin.CinemaTrailers4Jellyfins.Services .ToList(); if (movies.Count == 0) + { + _logger.LogDebug( + "|CinemaTrailers4Jellyfins| {Label} library {LibraryId} has no eligible Movie items. " + + "Ensure the library has been scanned and contains at least one other Movie.", + label, + parsedId); return null; + } var movie = movies[_rng.Next(movies.Count)]; + _logger.LogDebug( + "|CinemaTrailers4Jellyfins| {Label}: picked '{Title}' ({Path}).", + label, + movie.Name, + movie.Path); return new IntroInfo { ItemId = movie.Id, Path = movie.Path }; } diff --git a/build.yaml b/build.yaml index 75ea485..edbbbf8 100644 --- a/build.yaml +++ b/build.yaml @@ -1,5 +1,5 @@ --- -version: 1.0.0.5 +version: 1.0.0.6 name: CinemaTrailers4Jellyfins guid: b581493e-1046-40ed-b6dc-cb8027624984 description: > @@ -12,10 +12,10 @@ category: General owner: 514mart targetAbi: 10.11.0.0 changelog: - - Add Trailer Pre-Roll and Feature Pre-Roll bumpers via IIntroProvider — pick - existing Jellyfin Movie libraries in settings and a random movie from each is - played before the trailer block ("Now Playing") and/or right before the - feature ("Feature Presentation"); both are independent and disabled by default + - Add diagnostic logging for Trailer Pre-Roll and Feature Pre-Roll bumpers — + logs a warning if the configured library ID is invalid, and a debug message + when no eligible movie is found or which movie was picked, to help + troubleshoot why a bumper isn't playing dotnetProjects: - name: Jellyfin.Plugin.CinemaTrailers4Jellyfins