From 46c26b5ea772c440adf4cddde09ded2436be20df Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Tue, 30 Jan 2024 06:44:19 -0600 Subject: [PATCH] include all block playout items in xmltv (#1580) * include all block playout items in xmltv * double check whether channel preview will work --- .../Channels/Commands/RefreshChannelDataHandler.cs | 1 + .../Scheduling/BlockScheduling/BlockPlayoutBuilder.cs | 3 +++ ErsatzTV/Pages/Channels.razor | 9 +++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ErsatzTV.Application/Channels/Commands/RefreshChannelDataHandler.cs b/ErsatzTV.Application/Channels/Commands/RefreshChannelDataHandler.cs index fcb5c95b1..ae9822efa 100644 --- a/ErsatzTV.Application/Channels/Commands/RefreshChannelDataHandler.cs +++ b/ErsatzTV.Application/Channels/Commands/RefreshChannelDataHandler.cs @@ -96,6 +96,7 @@ public class RefreshChannelDataHandler : IRequestHandler switch (playout.ProgramSchedulePlayoutType) { case ProgramSchedulePlayoutType.Flood: + case ProgramSchedulePlayoutType.Block: sorted.AddRange(playouts.Collect(p => p.Items).OrderBy(pi => pi.Start)); break; case ProgramSchedulePlayoutType.ExternalJson: diff --git a/ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs b/ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs index cd95b0650..986c01c7f 100644 --- a/ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs +++ b/ErsatzTV.Core/Scheduling/BlockScheduling/BlockPlayoutBuilder.cs @@ -32,6 +32,8 @@ public class BlockPlayoutBuilder( playout.Channel.Number, playout.Channel.Name); + var random = new Random(); + List allowedPlaybackOrders = [ PlaybackOrder.Chronological, @@ -154,6 +156,7 @@ public class BlockPlayoutBuilder( //PreferredAudioTitle = scheduleItem.PreferredAudioTitle, //PreferredSubtitleLanguageCode = scheduleItem.PreferredSubtitleLanguageCode, //SubtitleMode = scheduleItem.SubtitleMode + GuideGroup = random.Next(), BlockKey = JsonConvert.SerializeObject(effectiveBlock.BlockKey), CollectionKey = JsonConvert.SerializeObject(collectionKey, JsonSettings), CollectionEtag = collectionEtags[collectionKey] diff --git a/ErsatzTV/Pages/Channels.razor b/ErsatzTV/Pages/Channels.razor index 3b5e2c8db..d9b985724 100644 --- a/ErsatzTV/Pages/Channels.razor +++ b/ErsatzTV/Pages/Channels.razor @@ -69,7 +69,7 @@ } else { - + @@ -151,6 +151,11 @@ return false; } + if (channel.PlayoutCount < 1) + { + return false; + } + Option maybeProfile = Optional(_ffmpegProfiles.Find(p => p.Id == channel.FFmpegProfileId)); foreach (FFmpegProfileViewModel profile in maybeProfile) { @@ -162,7 +167,7 @@ private async Task PreviewChannel(ChannelViewModel channel) { - if (channel.StreamingMode is StreamingMode.HttpLiveStreamingDirect or StreamingMode.TransportStream) + if (!CanPreviewChannel(channel)) { return; }