make next up smarter using watched history from deleted items

This commit is contained in:
Luke Pulverenti
2013-12-11 14:54:20 -05:00
parent 7ea2bdcf16
commit aa83cb75fd
3 changed files with 49 additions and 40 deletions

View File

@@ -221,6 +221,13 @@ namespace MediaBrowser.Controller.Entities.TV
/// <param name="user">The user.</param>
/// <returns>IEnumerable{Episode}.</returns>
public IEnumerable<Episode> GetEpisodes(User user)
{
var config = user.Configuration;
return GetEpisodes(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes);
}
public IEnumerable<Episode> 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<Episode>();
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<Episode>();

View File

@@ -128,23 +128,28 @@ namespace MediaBrowser.Controller.Entities.TV
}
public IEnumerable<Season> GetSeasons(User user)
{
var config = user.Configuration;
return GetSeasons(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes);
}
public IEnumerable<Season> GetSeasons(User user, bool includeMissingSeasons, bool includeVirtualUnaired)
{
var seasons = base.GetChildren(user, true)
.OfType<Season>();
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<Season>();
.Cast<Season>();
}
public IEnumerable<Episode> GetEpisodes(User user, int seasonNumber)
{
var config = user.Configuration;
return GetEpisodes(user, seasonNumber, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes);
}
public IEnumerable<Episode> GetEpisodes(User user, int seasonNumber, bool includeMissingEpisodes, bool includeVirtualUnairedEpisodes)
{
var episodes = GetRecursiveChildren(user)
.OfType<Episode>();
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);
}