From aa83cb75fde730f72e2d196abe2a014e3739ff3a Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 11 Dec 2013 14:54:20 -0500 Subject: make next up smarter using watched history from deleted items --- MediaBrowser.Controller/Entities/TV/Season.cs | 18 +++++++++++++++- MediaBrowser.Controller/Entities/TV/Series.cs | 30 ++++++++++++++++++--------- 2 files changed, 37 insertions(+), 11 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index a53bb53f1..5727b316b 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -221,6 +221,13 @@ namespace MediaBrowser.Controller.Entities.TV /// The user. /// IEnumerable{Episode}. public IEnumerable GetEpisodes(User user) + { + var config = user.Configuration; + + return GetEpisodes(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes); + } + + public IEnumerable GetEpisodes(User user, bool includeMissingEpisodes, bool includeVirtualUnairedEpisodes) { if (IndexNumber.HasValue) { @@ -228,13 +235,22 @@ namespace MediaBrowser.Controller.Entities.TV if (series != null) { - return series.GetEpisodes(user, IndexNumber.Value); + return series.GetEpisodes(user, IndexNumber.Value, includeMissingEpisodes, includeVirtualUnairedEpisodes); } } var episodes = GetRecursiveChildren(user) .OfType(); + if (!includeMissingEpisodes) + { + episodes = episodes.Where(i => !i.IsMissingEpisode); + } + if (!includeVirtualUnairedEpisodes) + { + episodes = episodes.Where(i => !i.IsVirtualUnaired); + } + return LibraryManager .Sort(episodes, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending) .Cast(); diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index c48b44d91..1565de4f8 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -128,23 +128,28 @@ namespace MediaBrowser.Controller.Entities.TV } public IEnumerable GetSeasons(User user) + { + var config = user.Configuration; + + return GetSeasons(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes); + } + + public IEnumerable GetSeasons(User user, bool includeMissingSeasons, bool includeVirtualUnaired) { var seasons = base.GetChildren(user, true) .OfType(); - var config = user.Configuration; - - if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes) + if (!includeMissingSeasons && !includeVirtualUnaired) { seasons = seasons.Where(i => !i.IsMissingOrVirtualUnaired); } else { - if (!config.DisplayMissingEpisodes) + if (!includeMissingSeasons) { seasons = seasons.Where(i => !i.IsMissingSeason); } - if (!config.DisplayUnairedEpisodes) + if (!includeVirtualUnaired) { seasons = seasons.Where(i => !i.IsVirtualUnaired); } @@ -152,23 +157,28 @@ namespace MediaBrowser.Controller.Entities.TV return LibraryManager .Sort(seasons, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending) - .Cast(); + .Cast(); } public IEnumerable GetEpisodes(User user, int seasonNumber) + { + var config = user.Configuration; + + return GetEpisodes(user, seasonNumber, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes); + } + + public IEnumerable GetEpisodes(User user, int seasonNumber, bool includeMissingEpisodes, bool includeVirtualUnairedEpisodes) { var episodes = GetRecursiveChildren(user) .OfType(); episodes = FilterEpisodesBySeason(episodes, seasonNumber, DisplaySpecialsWithSeasons); - var config = user.Configuration; - - if (!config.DisplayMissingEpisodes) + if (!includeMissingEpisodes) { episodes = episodes.Where(i => !i.IsMissingEpisode); } - if (!config.DisplayUnairedEpisodes) + if (!includeVirtualUnairedEpisodes) { episodes = episodes.Where(i => !i.IsVirtualUnaired); } -- cgit v1.2.3