Browse Source

fix multi episode shuffle (#1305)

pull/1306/head
Jason Dove 3 years ago committed by GitHub
parent
commit
99bd827bd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 15
      ErsatzTV.Infrastructure/Scheduling/MultiEpisodeShuffleCollectionEnumerator.cs

15
ErsatzTV.Infrastructure/Scheduling/MultiEpisodeShuffleCollectionEnumerator.cs

@ -10,6 +10,7 @@ namespace ErsatzTV.Infrastructure.Scheduling;
public class MultiEpisodeShuffleCollectionEnumerator : IMediaCollectionEnumerator public class MultiEpisodeShuffleCollectionEnumerator : IMediaCollectionEnumerator
{ {
private readonly CancellationToken _cancellationToken; private readonly CancellationToken _cancellationToken;
private readonly IList<MediaItem> _mediaItems;
private readonly IScriptEngine _scriptEngine; private readonly IScriptEngine _scriptEngine;
private readonly string _scriptFile; private readonly string _scriptFile;
private readonly ILogger _logger; private readonly ILogger _logger;
@ -26,14 +27,19 @@ public class MultiEpisodeShuffleCollectionEnumerator : IMediaCollectionEnumerato
IScriptEngine scriptEngine, IScriptEngine scriptEngine,
string scriptFile, string scriptFile,
ILogger logger, ILogger logger,
CancellationToken cancellationToken) CancellationToken cancellationToken,
bool skipLoad = false)
{ {
_mediaItems = mediaItems;
_scriptEngine = scriptEngine; _scriptEngine = scriptEngine;
_scriptFile = scriptFile; _scriptFile = scriptFile;
_logger = logger; _logger = logger;
_cancellationToken = cancellationToken; _cancellationToken = cancellationToken;
scriptEngine.Load(scriptFile); if (!skipLoad)
{
scriptEngine.Load(scriptFile);
}
var numParts = (int)(double)scriptEngine.GetValue("numParts"); var numParts = (int)(double)scriptEngine.GetValue("numParts");
@ -90,12 +96,13 @@ public class MultiEpisodeShuffleCollectionEnumerator : IMediaCollectionEnumerato
public IMediaCollectionEnumerator Clone(CollectionEnumeratorState state, CancellationToken cancellationToken) public IMediaCollectionEnumerator Clone(CollectionEnumeratorState state, CancellationToken cancellationToken)
{ {
return new MultiEpisodeShuffleCollectionEnumerator( return new MultiEpisodeShuffleCollectionEnumerator(
_ungrouped, _mediaItems,
state, state,
_scriptEngine, _scriptEngine,
_scriptFile, _scriptFile,
_logger, _logger,
cancellationToken); cancellationToken,
skipLoad: true);
} }
public CollectionEnumeratorState State { get; } public CollectionEnumeratorState State { get; }

Loading…
Cancel
Save