|
@@ -3,6 +3,7 @@ using MediaBrowser.Common.MediaInfo;
|
|
using MediaBrowser.Common.ScheduledTasks;
|
|
using MediaBrowser.Common.ScheduledTasks;
|
|
using MediaBrowser.Controller;
|
|
using MediaBrowser.Controller;
|
|
using MediaBrowser.Controller.Entities;
|
|
using MediaBrowser.Controller.Entities;
|
|
|
|
+using MediaBrowser.Controller.Entities.Movies;
|
|
using MediaBrowser.Controller.Library;
|
|
using MediaBrowser.Controller.Library;
|
|
using MediaBrowser.Controller.Providers.MediaInfo;
|
|
using MediaBrowser.Controller.Providers.MediaInfo;
|
|
using MediaBrowser.Model.Entities;
|
|
using MediaBrowser.Model.Entities;
|
|
@@ -95,33 +96,40 @@ namespace MediaBrowser.Server.Implementations.ScheduledTasks
|
|
/// <returns>Task.</returns>
|
|
/// <returns>Task.</returns>
|
|
public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
|
|
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);
|
|
progress.Report(0);
|
|
|
|
|