fix dashboard page

pull/702/head
Luke Pulverenti 9 years ago
parent 5a496a1fc8
commit 0edd4e410a

@ -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();

@ -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; // For non-unaired items, only enable if configured
if (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
if (!episode.IsVirtualUnaired)
{ {
// For non-unaired items, only enable if configured return false;
if (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
{
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))

@ -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 (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
if (item.LocationType != LocationType.Virtual)
{ {
return false; return false;
} }

@ -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 var seriesList = _libraryManager.GetItemList(new InternalItemsQuery()
.GetRecursiveChildren(i => i is Series && !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb))) {
.Cast<Series>() 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 var allSeries = seriesList
.GetRecursiveChildren(i => i is Series && !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb))) .Where(i => !string.IsNullOrEmpty(i.GetProviderId(MetadataProviders.Tvdb)))
.Cast<Series>()
.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);
} }

@ -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 return false;
if (!TvdbSeriesProvider.Current.GetTvDbOptions().EnableAutomaticUpdates)
{
return false;
}
} }
var season = (Season)item; var season = (Season)item;

@ -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;

Loading…
Cancel
Save