diff options
| author | Alex Stevens <ads@chubbymusic.co.uk> | 2016-06-05 21:20:54 +0100 |
|---|---|---|
| committer | Alex Stevens <ads@chubbymusic.co.uk> | 2016-06-05 21:20:54 +0100 |
| commit | 4c52fc094fa409f926b5076639902ee9cd4a41a3 (patch) | |
| tree | bc1024cd7f324c496f2d786cdd4441207c60ea29 /MediaBrowser.Server.Implementations/TV | |
| parent | 79b5d3e19549f04ee301e1e0ecac94d3b3e18e8e (diff) | |
| parent | 2e040f9c0c3d8cca834687a7c729f14097f7a83b (diff) | |
Merge remote-tracking branch 'upstream/dev' into dev
Diffstat (limited to 'MediaBrowser.Server.Implementations/TV')
| -rw-r--r-- | MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs | 42 |
1 files changed, 15 insertions, 27 deletions
diff --git a/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs b/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs index ec91dc1b71..d57aea08e2 100644 --- a/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs +++ b/MediaBrowser.Server.Implementations/TV/TVSeriesManager.cs @@ -111,24 +111,6 @@ namespace MediaBrowser.Server.Implementations.TV .Select(i => GetNextUp(i, currentUser)) // Include if an episode was found, and either the series is not unwatched or the specific series was requested .Where(i => i.Item1 != null && (!i.Item3 || !string.IsNullOrWhiteSpace(request.SeriesId))) - //.OrderByDescending(i => - //{ - // var episode = i.Item1; - - // var seriesUserData = _userDataManager.GetUserData(user, episode.Series); - - // if (seriesUserData.IsFavorite) - // { - // return 2; - // } - - // if (seriesUserData.Likes.HasValue) - // { - // return seriesUserData.Likes.Value ? 1 : -1; - // } - - // return 0; - //}) .OrderByDescending(i => i.Item2) .ThenByDescending(i => i.Item1.PremiereDate ?? DateTime.MinValue) .Select(i => i.Item1); @@ -143,9 +125,8 @@ namespace MediaBrowser.Server.Implementations.TV private Tuple<Episode, DateTime, bool> GetNextUp(Series series, User user) { // Get them in display order, then reverse - var allEpisodes = series.GetSeasons(user, true, true) - .Where(i => !i.IndexNumber.HasValue || i.IndexNumber.Value != 0) - .SelectMany(i => i.GetEpisodes(user)) + var allEpisodes = series.GetEpisodes(user, false, false) + .Where(i => !i.ParentIndexNumber.HasValue || i.ParentIndexNumber.Value != 0) .Reverse() .ToList(); @@ -153,7 +134,7 @@ namespace MediaBrowser.Server.Implementations.TV var lastWatchedDate = DateTime.MinValue; Episode nextUp = null; - var includeMissing = user.Configuration.DisplayMissingEpisodes; + var unplayedEpisodes = new List<Episode>(); // Go back starting with the most recent episodes foreach (var episode in allEpisodes) @@ -172,10 +153,9 @@ namespace MediaBrowser.Server.Implementations.TV } else { - if (!episode.IsVirtualUnaired && (includeMissing || !episode.IsMissingEpisode)) - { - nextUp = episode; - } + unplayedEpisodes.Add(episode); + + nextUp = episode; } } @@ -184,7 +164,15 @@ namespace MediaBrowser.Server.Implementations.TV return new Tuple<Episode, DateTime, bool>(nextUp, lastWatchedDate, false); } - var firstEpisode = allEpisodes.LastOrDefault(i => !i.IsVirtualUnaired && (includeMissing || !i.IsMissingEpisode) && !i.IsPlayed(user)); + Episode firstEpisode = null; + // Find the first unplayed episode. Start from the back of the list since they're in reverse order + for (var i = unplayedEpisodes.Count - 1; i >= 0; i--) + { + var unplayedEpisode = unplayedEpisodes[i]; + + firstEpisode = unplayedEpisode; + break; + } // Return the first episode return new Tuple<Episode, DateTime, bool>(firstEpisode, DateTime.MinValue, true); |
