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; }