diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-11 14:54:20 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-12-11 14:54:20 -0500 |
| commit | aa83cb75fde730f72e2d196abe2a014e3739ff3a (patch) | |
| tree | db2ec4cd7dc2a421d35b3c16d0ff521c0e7e579a /MediaBrowser.Api/TvShowsService.cs | |
| parent | 7ea2bdcf1608f6f4849d89f0da6f06dc5cb77266 (diff) | |
make next up smarter using watched history from deleted items
Diffstat (limited to 'MediaBrowser.Api/TvShowsService.cs')
| -rw-r--r-- | MediaBrowser.Api/TvShowsService.cs | 41 |
1 files changed, 12 insertions, 29 deletions
diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs index 11cd72cf4..9521f82cc 100644 --- a/MediaBrowser.Api/TvShowsService.cs +++ b/MediaBrowser.Api/TvShowsService.cs @@ -193,18 +193,6 @@ namespace MediaBrowser.Api /// <returns>System.Object.</returns> public object Get(GetNextUpEpisodes request) { - var result = GetNextUpEpisodeItemsResult(request); - - return ToOptimizedResult(result); - } - - /// <summary> - /// Gets the next up episodes. - /// </summary> - /// <param name="request">The request.</param> - /// <returns>Task{ItemsResult}.</returns> - private ItemsResult GetNextUpEpisodeItemsResult(GetNextUpEpisodes request) - { var user = _userManager.GetUserById(request.UserId); var itemsList = GetNextUpEpisodes(request) @@ -216,11 +204,13 @@ namespace MediaBrowser.Api var returnItems = pagedItems.Select(i => _dtoService.GetBaseItemDto(i, fields, user)).ToArray(); - return new ItemsResult + var result = new ItemsResult { TotalRecordCount = itemsList.Count, Items = returnItems }; + + return ToOptimizedResult(result); } public IEnumerable<Episode> GetNextUpEpisodes(GetNextUpEpisodes request) @@ -274,14 +264,12 @@ namespace MediaBrowser.Api /// <returns>Task{Episode}.</returns> private Tuple<Episode, DateTime> GetNextUp(Series series, User user, GetNextUpEpisodes request) { - var allEpisodes = series.GetRecursiveChildren(user) - .OfType<Episode>() - .OrderByDescending(i => i.PremiereDate ?? DateTime.MinValue) - .ThenByDescending(i => i.IndexNumber ?? 0) + // Get them in display order, then reverse + var allEpisodes = series.GetSeasons(user, true, true) + .SelectMany(i => i.GetEpisodes(user, true, true)) + .Reverse() .ToList(); - allEpisodes = FilterItems(request, allEpisodes).ToList(); - Episode lastWatched = null; var lastWatchedDate = DateTime.MinValue; Episode nextUp = null; @@ -303,7 +291,10 @@ namespace MediaBrowser.Api } else { - nextUp = episode; + if (episode.LocationType != LocationType.Virtual) + { + nextUp = episode; + } } } @@ -315,15 +306,6 @@ namespace MediaBrowser.Api return new Tuple<Episode, DateTime>(null, lastWatchedDate); } - - private IEnumerable<Episode> FilterItems(GetNextUpEpisodes request, IEnumerable<Episode> items) - { - // Make this configurable when needed - items = items.Where(i => i.LocationType != LocationType.Virtual); - - return items; - } - private IEnumerable<Series> FilterSeries(GetNextUpEpisodes request, IEnumerable<Series> items) { if (!string.IsNullOrWhiteSpace(request.SeriesId)) @@ -369,6 +351,7 @@ namespace MediaBrowser.Api { throw new ResourceNotFoundException("No series exists with Id " + request.Id); } + var seasons = series.GetSeasons(user); if (request.IsSpecialSeason.HasValue) |
