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