瀏覽代碼

fix dashboard page

Luke Pulverenti 9 年之前
父節點
當前提交
0edd4e410a

+ 4 - 2
MediaBrowser.Providers/TV/SeriesPostScanTask.cs

@@ -53,7 +53,8 @@ namespace MediaBrowser.Providers.TV
             var seriesList = _libraryManager.GetItemList(new InternalItemsQuery()
             var seriesList = _libraryManager.GetItemList(new InternalItemsQuery()
             {
             {
                 IncludeItemTypes = new[] { typeof(Series).Name },
                 IncludeItemTypes = new[] { typeof(Series).Name },
-                Recursive = true
+                Recursive = true,
+                GroupByPresentationUniqueKey = false
 
 
             }).Cast<Series>().ToList();
             }).Cast<Series>().ToList();
 
 
@@ -207,7 +208,8 @@ namespace MediaBrowser.Providers.TV
             var seriesList = _libraryManager.GetItemList(new InternalItemsQuery()
             var seriesList = _libraryManager.GetItemList(new InternalItemsQuery()
             {
             {
                 IncludeItemTypes = new[] { typeof(Series).Name },
                 IncludeItemTypes = new[] { typeof(Series).Name },
-                Recursive = true
+                Recursive = true,
+                GroupByPresentationUniqueKey = false
 
 
             }).Cast<Series>().ToList();
             }).Cast<Series>().ToList();
 
 

+ 5 - 8
MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeImageProvider.cs

@@ -176,19 +176,16 @@ namespace MediaBrowser.Providers.TV
 
 
         public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
         public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
         {
         {
-            var episode = (Episode)item;
-            
-            if (!episode.IsVirtualUnaired)
+            // For non-unaired items, only enable if configured
+            if (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
             {
             {
-                // For non-unaired items, only enable if configured
-                if (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
-                {
-                    return false;
-                }
+                return false;
             }
             }
 
 
             if (!item.HasImage(ImageType.Primary))
             if (!item.HasImage(ImageType.Primary))
             {
             {
+                var episode = (Episode)item;
+
                 var series = episode.Series;
                 var series = episode.Series;
 
 
                 if (series != null && TvdbSeriesProvider.IsValidSeries(series.ProviderIds))
                 if (series != null && TvdbSeriesProvider.IsValidSeries(series.ProviderIds))

+ 1 - 2
MediaBrowser.Providers/TV/TheTVDB/TvdbEpisodeProvider.cs

@@ -146,8 +146,7 @@ namespace MediaBrowser.Providers.TV
 
 
         public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
         public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
         {
         {
-            // Only enable for virtual items
-            if (item.LocationType != LocationType.Virtual)
+            if (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
             {
             {
                 return false;
                 return false;
             }
             }

+ 26 - 12
MediaBrowser.Providers/TV/TheTVDB/TvdbPrescanTask.cs

@@ -15,6 +15,7 @@ using System.Threading;
 using System.Threading.Tasks;
 using System.Threading.Tasks;
 using System.Xml;
 using System.Xml;
 using CommonIO;
 using CommonIO;
+using MediaBrowser.Controller.Entities;
 
 
 namespace MediaBrowser.Providers.TV
 namespace MediaBrowser.Providers.TV
 {
 {
@@ -89,7 +90,7 @@ namespace MediaBrowser.Providers.TV
 
 
             var path = TvdbSeriesProvider.GetSeriesDataPath(_config.CommonApplicationPaths);
             var path = TvdbSeriesProvider.GetSeriesDataPath(_config.CommonApplicationPaths);
 
 
-			_fileSystem.CreateDirectory(path);
+            _fileSystem.CreateDirectory(path);
 
 
             var timestampFile = Path.Combine(path, "time.txt");
             var timestampFile = Path.Combine(path, "time.txt");
 
 
@@ -102,7 +103,7 @@ namespace MediaBrowser.Providers.TV
             }
             }
 
 
             // Find out the last time we queried tvdb for updates
             // Find out the last time we queried tvdb for updates
-			var lastUpdateTime = timestampFileInfo.Exists ? _fileSystem.ReadAllText(timestampFile, Encoding.UTF8) : string.Empty;
+            var lastUpdateTime = timestampFileInfo.Exists ? _fileSystem.ReadAllText(timestampFile, Encoding.UTF8) : string.Empty;
 
 
             string newUpdateTime;
             string newUpdateTime;
 
 
@@ -110,15 +111,21 @@ namespace MediaBrowser.Providers.TV
                 .Select(Path.GetFileName)
                 .Select(Path.GetFileName)
                 .ToList();
                 .ToList();
 
 
-            var seriesIdsInLibrary = _libraryManager.RootFolder
-                .GetRecursiveChildren(i => i is Series && !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb)))
-               .Cast<Series>()
+            var seriesList = _libraryManager.GetItemList(new InternalItemsQuery()
+            {
+                IncludeItemTypes = new[] { typeof(Series).Name },
+                Recursive = true,
+                GroupByPresentationUniqueKey = false
+            }).Cast<Series>();
+
+            var seriesIdsInLibrary = seriesList
+               .Where(i => !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb)))
                .Select(i => i.GetProviderId(MetadataProviders.Tvdb))
                .Select(i => i.GetProviderId(MetadataProviders.Tvdb))
                .ToList();
                .ToList();
 
 
             var missingSeries = seriesIdsInLibrary.Except(existingDirectories, StringComparer.OrdinalIgnoreCase)
             var missingSeries = seriesIdsInLibrary.Except(existingDirectories, StringComparer.OrdinalIgnoreCase)
                 .ToList();
                 .ToList();
-            
+
             // If this is our first time, update all series
             // If this is our first time, update all series
             if (string.IsNullOrEmpty(lastUpdateTime))
             if (string.IsNullOrEmpty(lastUpdateTime))
             {
             {
@@ -157,7 +164,7 @@ namespace MediaBrowser.Providers.TV
                 await UpdateSeries(listToUpdate, path, nullableUpdateValue, progress, cancellationToken).ConfigureAwait(false);
                 await UpdateSeries(listToUpdate, path, nullableUpdateValue, progress, cancellationToken).ConfigureAwait(false);
             }
             }
 
 
-			_fileSystem.WriteAllText(timestampFile, newUpdateTime, Encoding.UTF8);
+            _fileSystem.WriteAllText(timestampFile, newUpdateTime, Encoding.UTF8);
             progress.Report(100);
             progress.Report(100);
         }
         }
 
 
@@ -300,10 +307,17 @@ namespace MediaBrowser.Providers.TV
             var list = seriesIds.ToList();
             var list = seriesIds.ToList();
             var numComplete = 0;
             var numComplete = 0;
 
 
+            var seriesList = _libraryManager.GetItemList(new InternalItemsQuery()
+            {
+                IncludeItemTypes = new[] { typeof(Series).Name },
+                Recursive = true,
+                GroupByPresentationUniqueKey = false
+
+            }).Cast<Series>();
+
             // Gather all series into a lookup by tvdb id
             // Gather all series into a lookup by tvdb id
-            var allSeries = _libraryManager.RootFolder
-                .GetRecursiveChildren(i => i is Series && !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb)))
-                .Cast<Series>()
+            var allSeries = seriesList
+                .Where(i => !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb)))
                 .ToLookup(i => i.GetProviderId(MetadataProviders.Tvdb));
                 .ToLookup(i => i.GetProviderId(MetadataProviders.Tvdb));
 
 
             foreach (var seriesId in list)
             foreach (var seriesId in list)
@@ -323,7 +337,7 @@ namespace MediaBrowser.Providers.TV
                     catch (HttpException ex)
                     catch (HttpException ex)
                     {
                     {
                         _logger.ErrorException("Error updating tvdb series id {0}, language {1}", ex, seriesId, language);
                         _logger.ErrorException("Error updating tvdb series id {0}, language {1}", ex, seriesId, language);
-                        
+
                         // Already logged at lower levels, but don't fail the whole operation, unless timed out
                         // Already logged at lower levels, but don't fail the whole operation, unless timed out
                         // We have to fail this to make it run again otherwise new episode data could potentially be missing
                         // We have to fail this to make it run again otherwise new episode data could potentially be missing
                         if (ex.IsTimedOut)
                         if (ex.IsTimedOut)
@@ -357,7 +371,7 @@ namespace MediaBrowser.Providers.TV
 
 
             seriesDataPath = Path.Combine(seriesDataPath, id);
             seriesDataPath = Path.Combine(seriesDataPath, id);
 
 
-			_fileSystem.CreateDirectory(seriesDataPath);
+            _fileSystem.CreateDirectory(seriesDataPath);
 
 
             return TvdbSeriesProvider.Current.DownloadSeriesZip(id, MetadataProviders.Tvdb.ToString(), seriesDataPath, lastTvDbUpdateTime, preferredMetadataLanguage, cancellationToken);
             return TvdbSeriesProvider.Current.DownloadSeriesZip(id, MetadataProviders.Tvdb.ToString(), seriesDataPath, lastTvDbUpdateTime, preferredMetadataLanguage, cancellationToken);
         }
         }

+ 2 - 6
MediaBrowser.Providers/TV/TheTVDB/TvdbSeasonImageProvider.cs

@@ -365,13 +365,9 @@ namespace MediaBrowser.Providers.TV
 
 
         public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
         public bool HasChanged(IHasMetadata item, IDirectoryService directoryService)
         {
         {
-            if (item.LocationType != LocationType.Virtual)
+            if (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
             {
             {
-                // For non-virtual items, only enable if configured
-                if (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
-                {
-                    return false;
-                }
+                return false;
             }
             }
 
 
             var season = (Season)item;
             var season = (Season)item;

+ 5 - 0
MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

@@ -2398,6 +2398,11 @@ namespace MediaBrowser.Server.Implementations.Persistence
                 return false;
                 return false;
             }
             }
 
 
+            if (query.User == null)
+            {
+                return false;
+            }
+
             if (query.IncludeItemTypes.Length == 0)
             if (query.IncludeItemTypes.Length == 0)
             {
             {
                 return true;
                 return true;