Browse Source

show all items in epg by default (#1835)

pull/1836/head
Jason Dove 1 year ago committed by GitHub
parent
commit
e3c981004b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutAllHandler.cs
  2. 2
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutCountHandler.cs
  3. 10
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutDurationHandler.cs
  4. 2
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutNewEpgGroupHandler.cs
  5. 1
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutPadToNextHandler.cs
  6. 1
      ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutPadUntilHandler.cs
  7. 3
      ErsatzTV.Core/Scheduling/YamlScheduling/Models/YamlPlayoutDurationInstruction.cs
  8. 13
      ErsatzTV.Core/Scheduling/YamlScheduling/YamlPlayoutBuilder.cs
  9. 13
      ErsatzTV.Core/Scheduling/YamlScheduling/YamlPlayoutContext.cs

2
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutAllHandler.cs

@ -48,7 +48,7 @@ public class YamlPlayoutAllHandler(EnumeratorCache enumeratorCache) : YamlPlayou
//PreferredAudioTitle = scheduleItem.PreferredAudioTitle, //PreferredAudioTitle = scheduleItem.PreferredAudioTitle,
//PreferredSubtitleLanguageCode = scheduleItem.PreferredSubtitleLanguageCode, //PreferredSubtitleLanguageCode = scheduleItem.PreferredSubtitleLanguageCode,
//SubtitleMode = scheduleItem.SubtitleMode //SubtitleMode = scheduleItem.SubtitleMode
GuideGroup = context.GuideGroup GuideGroup = context.NextGuideGroup()
//GuideStart = effectiveBlock.Start.UtcDateTime, //GuideStart = effectiveBlock.Start.UtcDateTime,
//GuideFinish = blockFinish.UtcDateTime, //GuideFinish = blockFinish.UtcDateTime,
//BlockKey = JsonConvert.SerializeObject(effectiveBlock.BlockKey), //BlockKey = JsonConvert.SerializeObject(effectiveBlock.BlockKey),

2
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutCountHandler.cs

@ -48,7 +48,7 @@ public class YamlPlayoutCountHandler(EnumeratorCache enumeratorCache) : YamlPlay
//PreferredAudioTitle = scheduleItem.PreferredAudioTitle, //PreferredAudioTitle = scheduleItem.PreferredAudioTitle,
//PreferredSubtitleLanguageCode = scheduleItem.PreferredSubtitleLanguageCode, //PreferredSubtitleLanguageCode = scheduleItem.PreferredSubtitleLanguageCode,
//SubtitleMode = scheduleItem.SubtitleMode //SubtitleMode = scheduleItem.SubtitleMode
GuideGroup = context.GuideGroup GuideGroup = context.NextGuideGroup()
//GuideStart = effectiveBlock.Start.UtcDateTime, //GuideStart = effectiveBlock.Start.UtcDateTime,
//GuideFinish = blockFinish.UtcDateTime, //GuideFinish = blockFinish.UtcDateTime,
//BlockKey = JsonConvert.SerializeObject(effectiveBlock.BlockKey), //BlockKey = JsonConvert.SerializeObject(effectiveBlock.BlockKey),

10
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutDurationHandler.cs

@ -51,7 +51,6 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
duration.DiscardAttempts, duration.DiscardAttempts,
duration.Trim, duration.Trim,
duration.OfflineTail, duration.OfflineTail,
duration.EpgGroupPerItem,
GetFillerKind(duration), GetFillerKind(duration),
enumerator, enumerator,
fallbackEnumerator); fallbackEnumerator);
@ -70,7 +69,6 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
int discardAttempts, int discardAttempts,
bool trim, bool trim,
bool offlineTail, bool offlineTail,
bool guideGroupPerItem,
FillerKind fillerKind, FillerKind fillerKind,
IMediaCollectionEnumerator enumerator, IMediaCollectionEnumerator enumerator,
Option<IMediaCollectionEnumerator> fallbackEnumerator) Option<IMediaCollectionEnumerator> fallbackEnumerator)
@ -81,11 +79,6 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
{ {
foreach (MediaItem mediaItem in enumerator.Current) foreach (MediaItem mediaItem in enumerator.Current)
{ {
if (guideGroupPerItem)
{
context.GuideGroup *= -1;
}
TimeSpan itemDuration = DurationForMediaItem(mediaItem); TimeSpan itemDuration = DurationForMediaItem(mediaItem);
var playoutItem = new PlayoutItem var playoutItem = new PlayoutItem
@ -95,14 +88,13 @@ public class YamlPlayoutDurationHandler(EnumeratorCache enumeratorCache) : YamlP
Finish = context.CurrentTime.UtcDateTime + itemDuration, Finish = context.CurrentTime.UtcDateTime + itemDuration,
InPoint = TimeSpan.Zero, InPoint = TimeSpan.Zero,
OutPoint = itemDuration, OutPoint = itemDuration,
GuideGroup = context.GuideGroup, GuideGroup = context.NextGuideGroup(),
FillerKind = fillerKind FillerKind = fillerKind
//DisableWatermarks = !allowWatermarks //DisableWatermarks = !allowWatermarks
}; };
if (remainingToFill - itemDuration >= TimeSpan.Zero) if (remainingToFill - itemDuration >= TimeSpan.Zero)
{ {
context.Playout.Items.Add(playoutItem); context.Playout.Items.Add(playoutItem);
// create history record // create history record

2
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutNewEpgGroupHandler.cs

@ -18,7 +18,7 @@ public class YamlPlayoutNewEpgGroupHandler : IYamlPlayoutHandler
return Task.FromResult(false); return Task.FromResult(false);
} }
context.GuideGroup *= -1; // context.NextGuideGroup() *= -1;
return Task.FromResult(true); return Task.FromResult(true);
} }
} }

1
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutPadToNextHandler.cs

@ -59,7 +59,6 @@ public class YamlPlayoutPadToNextHandler(EnumeratorCache enumeratorCache) : Yaml
padToNext.DiscardAttempts, padToNext.DiscardAttempts,
padToNext.Trim, padToNext.Trim,
offlineTail: true, offlineTail: true,
guideGroupPerItem: false,
GetFillerKind(padToNext), GetFillerKind(padToNext),
enumerator, enumerator,
fallbackEnumerator); fallbackEnumerator);

1
ErsatzTV.Core/Scheduling/YamlScheduling/Handlers/YamlPlayoutPadUntilHandler.cs

@ -69,7 +69,6 @@ public class YamlPlayoutPadUntilHandler(EnumeratorCache enumeratorCache) : YamlP
padUntil.DiscardAttempts, padUntil.DiscardAttempts,
padUntil.Trim, padUntil.Trim,
offlineTail: true, offlineTail: true,
guideGroupPerItem: false,
GetFillerKind(padUntil), GetFillerKind(padUntil),
enumerator, enumerator,
fallbackEnumerator); fallbackEnumerator);

3
ErsatzTV.Core/Scheduling/YamlScheduling/Models/YamlPlayoutDurationInstruction.cs

@ -11,9 +11,6 @@ public class YamlPlayoutDurationInstruction : YamlPlayoutInstruction
[YamlMember(Alias = "offline_tail", ApplyNamingConventions = false)] [YamlMember(Alias = "offline_tail", ApplyNamingConventions = false)]
public bool OfflineTail { get; set; } public bool OfflineTail { get; set; }
[YamlMember(Alias = "epg_group_per_item", ApplyNamingConventions = false)]
public bool EpgGroupPerItem { get; set; } = true;
public string Fallback { get; set; } public string Fallback { get; set; }
[YamlMember(Alias = "discard_attempts", ApplyNamingConventions = false)] [YamlMember(Alias = "discard_attempts", ApplyNamingConventions = false)]

13
ErsatzTV.Core/Scheduling/YamlScheduling/YamlPlayoutBuilder.cs

@ -37,10 +37,9 @@ public class YamlPlayoutBuilder(
Dictionary<YamlPlayoutInstruction, IYamlPlayoutHandler> handlers = new(); Dictionary<YamlPlayoutInstruction, IYamlPlayoutHandler> handlers = new();
var enumeratorCache = new EnumeratorCache(mediaCollectionRepository); var enumeratorCache = new EnumeratorCache(mediaCollectionRepository);
var context = new YamlPlayoutContext(playout, playoutDefinition) var context = new YamlPlayoutContext(playout, playoutDefinition, guideGroup: 1)
{ {
CurrentTime = start, CurrentTime = start
GuideGroup = 1
// no need to init default value and throw off visited count // no need to init default value and throw off visited count
// InstructionIndex = 0 // InstructionIndex = 0
@ -61,10 +60,10 @@ public class YamlPlayoutBuilder(
{ {
foreach (PlayoutAnchor prevAnchor in Optional(playout.Anchor)) foreach (PlayoutAnchor prevAnchor in Optional(playout.Anchor))
{ {
context.GuideGroup = prevAnchor.NextGuideGroup; // TODO: does this matter?
//context.GuideGroup = prevAnchor.NextGuideGroup;
start = new DateTimeOffset(prevAnchor.NextStart.ToLocalTime(), start.Offset); context.CurrentTime = new DateTimeOffset(prevAnchor.NextStart.ToLocalTime(), start.Offset);
context.CurrentTime = start;
context.InstructionIndex = prevAnchor.NextInstructionIndex; context.InstructionIndex = prevAnchor.NextInstructionIndex;
} }
@ -171,7 +170,7 @@ public class YamlPlayoutBuilder(
{ {
NextStart = maxTime, NextStart = maxTime,
NextInstructionIndex = context.InstructionIndex, NextInstructionIndex = context.InstructionIndex,
NextGuideGroup = context.GuideGroup NextGuideGroup = context.NextGuideGroup()
}; };
// logger.LogDebug( // logger.LogDebug(

13
ErsatzTV.Core/Scheduling/YamlScheduling/YamlPlayoutContext.cs

@ -3,7 +3,7 @@ using ErsatzTV.Core.Scheduling.YamlScheduling.Models;
namespace ErsatzTV.Core.Scheduling.YamlScheduling; namespace ErsatzTV.Core.Scheduling.YamlScheduling;
public class YamlPlayoutContext(Playout playout, YamlPlayoutDefinition definition) public class YamlPlayoutContext(Playout playout, YamlPlayoutDefinition definition, int guideGroup)
{ {
private readonly System.Collections.Generic.HashSet<int> _visitedInstructions = []; private readonly System.Collections.Generic.HashSet<int> _visitedInstructions = [];
private int _instructionIndex; private int _instructionIndex;
@ -26,5 +26,14 @@ public class YamlPlayoutContext(Playout playout, YamlPlayoutDefinition definitio
public bool VisitedAll => _visitedInstructions.Count >= Definition.Playout.Count; public bool VisitedAll => _visitedInstructions.Count >= Definition.Playout.Count;
public int GuideGroup { get; set; } public int NextGuideGroup()
{
guideGroup++;
if (guideGroup > 1000)
{
guideGroup = 1;
}
return guideGroup;
}
} }

Loading…
Cancel
Save