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

@@ -3,8 +3,8 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net9.0</TargetFramework> <TargetFramework>net9.0</TargetFramework>
<RootNamespace>Jellyfin.Plugin.CinemaTrailers4Jellyfins</RootNamespace> <RootNamespace>Jellyfin.Plugin.CinemaTrailers4Jellyfins</RootNamespace>
<AssemblyVersion>1.0.0.5</AssemblyVersion> <AssemblyVersion>1.0.0.6</AssemblyVersion>
<FileVersion>1.0.0.5</FileVersion> <FileVersion>1.0.0.6</FileVersion>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<GenerateDocumentationFile>false</GenerateDocumentationFile> <GenerateDocumentationFile>false</GenerateDocumentationFile>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors> <TreatWarningsAsErrors>false</TreatWarningsAsErrors>

View File

@@ -91,7 +91,7 @@ namespace Jellyfin.Plugin.CinemaTrailers4Jellyfins.Services
if (preRollEnabled) if (preRollEnabled)
{ {
var preRoll = GetRandomLibraryMovieIntro(config.TrailerPreRollLibraryId, item.Id); var preRoll = GetRandomLibraryMovieIntro("Trailer Pre-Roll", config.TrailerPreRollLibraryId, item.Id);
if (preRoll != null) if (preRoll != null)
intros.Add(preRoll); intros.Add(preRoll);
} }
@@ -145,7 +145,7 @@ namespace Jellyfin.Plugin.CinemaTrailers4Jellyfins.Services
if (featurePreRollEnabled) if (featurePreRollEnabled)
{ {
var featureRoll = GetRandomLibraryMovieIntro(config.FeaturePreRollLibraryId, item.Id); var featureRoll = GetRandomLibraryMovieIntro("Feature Pre-Roll", config.FeaturePreRollLibraryId, item.Id);
if (featureRoll != null) if (featureRoll != null)
intros.Add(featureRoll); 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 /// 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. /// pre-roll/post-roll bumper, excluding the item currently being played.
/// </summary> /// </summary>
private IntroInfo? GetRandomLibraryMovieIntro(string libraryId, Guid excludeId) private IntroInfo? GetRandomLibraryMovieIntro(string label, string libraryId, Guid excludeId)
{ {
if (!Guid.TryParse(libraryId, out var parsedId)) 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; return null;
}
var movies = _libraryManager var movies = _libraryManager
.GetItemList(new InternalItemsQuery .GetItemList(new InternalItemsQuery
@@ -174,9 +180,21 @@ namespace Jellyfin.Plugin.CinemaTrailers4Jellyfins.Services
.ToList(); .ToList();
if (movies.Count == 0) 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; return null;
}
var movie = movies[_rng.Next(movies.Count)]; 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 }; return new IntroInfo { ItemId = movie.Id, Path = movie.Path };
} }

View File

@@ -1,5 +1,5 @@
--- ---
version: 1.0.0.5 version: 1.0.0.6
name: CinemaTrailers4Jellyfins name: CinemaTrailers4Jellyfins
guid: b581493e-1046-40ed-b6dc-cb8027624984 guid: b581493e-1046-40ed-b6dc-cb8027624984
description: > description: >
@@ -12,10 +12,10 @@ category: General
owner: 514mart owner: 514mart
targetAbi: 10.11.0.0 targetAbi: 10.11.0.0
changelog: changelog:
- Add Trailer Pre-Roll and Feature Pre-Roll bumpers via IIntroProvider — pick - Add diagnostic logging for Trailer Pre-Roll and Feature Pre-Roll bumpers
existing Jellyfin Movie libraries in settings and a random movie from each is logs a warning if the configured library ID is invalid, and a debug message
played before the trailer block ("Now Playing") and/or right before the when no eligible movie is found or which movie was picked, to help
feature ("Feature Presentation"); both are independent and disabled by default troubleshoot why a bumper isn't playing
dotnetProjects: dotnetProjects:
- name: Jellyfin.Plugin.CinemaTrailers4Jellyfins - name: Jellyfin.Plugin.CinemaTrailers4Jellyfins