diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs b/MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs index a995f1a47..a5c2f28b7 100644 --- a/MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs +++ b/MediaBrowser.Server.Implementations/ScheduledTasks/VideoImagesTask.cs @@ -3,6 +3,7 @@ using MediaBrowser.Common.MediaInfo; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers.MediaInfo; using MediaBrowser.Model.Entities; @@ -95,33 +96,40 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks /// <returns>Task.</returns> public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress) { - var items = _libraryManager.RootFolder.RecursiveChildren - .OfType<Video>() - .Where(i => - { - if (!string.IsNullOrEmpty(i.PrimaryImagePath)) - { - return false; - } + var allItems = _libraryManager.RootFolder.RecursiveChildren.ToList(); - if (i.LocationType != LocationType.FileSystem) - { - return false; - } + var localTrailers = allItems.SelectMany(i => i.LocalTrailers); - if (i.VideoType == VideoType.HdDvd) - { - return false; - } + var videos = allItems.OfType<Video>().ToList(); - if (i.VideoType == VideoType.Iso && !i.IsoType.HasValue) - { - return false; - } + var items = videos; + items.AddRange(localTrailers); + items.AddRange(videos.OfType<Movie>().SelectMany(i => i.SpecialFeatures).ToList()); + + items = items.Where(i => + { + if (!string.IsNullOrEmpty(i.PrimaryImagePath)) + { + return false; + } + + if (i.LocationType != LocationType.FileSystem) + { + return false; + } + + if (i.VideoType == VideoType.HdDvd) + { + return false; + } + + if (i.VideoType == VideoType.Iso && !i.IsoType.HasValue) + { + return false; + } - return i.MediaStreams != null && i.MediaStreams.Any(m => m.Type == MediaStreamType.Video); - }) - .ToList(); + return i.MediaStreams != null && i.MediaStreams.Any(m => m.Type == MediaStreamType.Video); + }).ToList(); progress.Report(0); |
