All checks were successful
Publish Release / release (push) Successful in 1m34s
Registers TrailerIntroProvider as IIntroProvider. Queries fake-movie items in the output folder and returns their local trailer extras (LocalTrailers) as IntroInfo — mirroring jellyfin-plugin-cinemamode's proven pattern so Wholphin plays the actual trailer, not the 3-second black placeholder. Recursion guard: items whose path starts with the output folder are excluded from intro injection, so Wholphin's getIntros call on the intro item itself returns empty. Server-scoped query bypasses library visibility restrictions so hidden trailer libraries still work. Adds TrailersPerMovie config option (default 1, 0 = disabled). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
48 lines
2.7 KiB
C#
48 lines
2.7 KiB
C#
using MediaBrowser.Model.Plugins;
|
|
|
|
namespace Jellyfin.Plugin.CinemaTrailers4Jellyfins.Configuration
|
|
{
|
|
public class PluginConfiguration : BasePluginConfiguration
|
|
{
|
|
// ── TMDB ──────────────────────────────────────────────────────────────
|
|
|
|
public string TmdbApiKey { get; set; } = string.Empty;
|
|
|
|
// ── Sources ───────────────────────────────────────────────────────────
|
|
|
|
public bool SourceNowPlaying { get; set; } = true;
|
|
public bool SourceUpcoming { get; set; } = true;
|
|
public bool SourcePopular { get; set; } = false;
|
|
public bool SourceTopRated { get; set; } = false;
|
|
|
|
// ── Date Range ────────────────────────────────────────────────────────
|
|
|
|
public int ReleaseDateRangeMonths { get; set; } = 6;
|
|
|
|
// ── Download Settings ─────────────────────────────────────────────────
|
|
|
|
public string DownloadFolder { get; set; } = string.Empty;
|
|
public int MaxTrailersToDownload { get; set; } = 20;
|
|
public int MaxPagesPerSource { get; set; } = 3;
|
|
public int PreferredVideoHeight { get; set; } = 720;
|
|
public bool SkipAlreadyDownloaded { get; set; } = true;
|
|
public bool SkipMoviesInLibrary { get; set; } = true;
|
|
public string YtDlpPath { get; set; } = string.Empty;
|
|
|
|
// ── Languages ─────────────────────────────────────────────────────────
|
|
|
|
/// <summary>Comma-separated ISO 639-1 codes. Empty = all languages allowed.</summary>
|
|
public string AllowedLanguages { get; set; } = string.Empty;
|
|
|
|
// ── Trailer Rotation ──────────────────────────────────────────────────
|
|
|
|
/// <summary>Maximum trailers to keep on disk. Oldest are deleted first when exceeded. 0 = unlimited.</summary>
|
|
public int MaxTotalTrailers { get; set; } = 50;
|
|
|
|
// ── IIntroProvider (Cinema Mode / Wholphin) ───────────────────────────
|
|
|
|
/// <summary>Number of trailers to inject before each movie via IIntroProvider. 0 = disabled.</summary>
|
|
public int TrailersPerMovie { get; set; } = 1;
|
|
}
|
|
}
|