chore: add diagnostic logging for pre-roll bumpers (v1.0.0.6)
All checks were successful
Publish Release / release (push) Successful in 13s

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.
This commit is contained in:
Martin
2026-06-10 10:35:33 -04:00
parent 2ef39853eb
commit ba56926dc2
3 changed files with 28 additions and 10 deletions

View File

@@ -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.
/// </summary>
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 };
}