diff options
Diffstat (limited to 'MediaBrowser.Providers/TV/MissingEpisodeProvider.cs')
| -rw-r--r-- | MediaBrowser.Providers/TV/MissingEpisodeProvider.cs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs index c33b9d549..171a5af5f 100644 --- a/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs +++ b/MediaBrowser.Providers/TV/MissingEpisodeProvider.cs @@ -91,6 +91,8 @@ namespace MediaBrowser.Providers.TV .Where(i => i.Item1 != -1 && i.Item2 != -1) .ToList(); + var hasBadData = HasInvalidContent(group); + var anySeasonsRemoved = await RemoveObsoleteOrMissingSeasons(group, episodeLookup, cancellationToken) .ConfigureAwait(false); @@ -105,7 +107,7 @@ namespace MediaBrowser.Providers.TV hasNewSeasons = await AddDummySeasonFolders(series, cancellationToken).ConfigureAwait(false); } - if (_config.Configuration.EnableInternetProviders) + if (!hasBadData && _config.Configuration.EnableInternetProviders) { var seriesConfig = _config.Configuration.MetadataOptions.FirstOrDefault(i => string.Equals(i.ItemType, typeof(Series).Name, StringComparison.OrdinalIgnoreCase)); @@ -131,6 +133,20 @@ namespace MediaBrowser.Providers.TV } /// <summary> + /// Returns true if a series has any seasons or episodes without season or episode numbers + /// If this data is missing no virtual items will be added in order to prevent possible duplicates + /// </summary> + /// <param name="group"></param> + /// <returns></returns> + private bool HasInvalidContent(IEnumerable<Series> group) + { + var allItems = group.ToList().SelectMany(i => i.RecursiveChildren).ToList(); + + return allItems.OfType<Season>().Any(i => !i.IndexNumber.HasValue) || + allItems.OfType<Episode>().Any(i => !i.IndexNumber.HasValue || !i.ParentIndexNumber.HasValue); + } + + /// <summary> /// For series with episodes directly under the series folder, this adds dummy seasons to enable regular browsing and metadata /// </summary> /// <param name="series"></param> |
