diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-06-08 11:25:17 -0400 |
|---|---|---|
| committer | Luke <luke.pulverenti@gmail.com> | 2016-06-08 11:25:17 -0400 |
| commit | b6b5a0e6dc2e57b37129ac46cdb7d7d89ae2b628 (patch) | |
| tree | 424fdc63a5755aa79a7ff414fcc195699adfb1ad /MediaBrowser.Controller/Entities | |
| parent | 1c4a48d2577e7afcc94e194135f07dbe94e0dbd7 (diff) | |
| parent | 26ff2882e7b9dea4be55c50f571e64aea88c2004 (diff) | |
Merge pull request #1830 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Controller/Entities')
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Series.cs | 54 |
1 files changed, 19 insertions, 35 deletions
diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index 459b6dfb6..2f2968db8 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -402,47 +402,31 @@ namespace MediaBrowser.Controller.Entities.TV public static IEnumerable<Episode> FilterEpisodesBySeason(IEnumerable<Episode> episodes, Season parentSeason, bool includeSpecials) { var seasonNumber = parentSeason.IndexNumber; - if (!includeSpecials || (seasonNumber.HasValue && seasonNumber.Value == 0)) - { - var seasonPresentationKey = parentSeason.PresentationUniqueKey; + var seasonPresentationKey = parentSeason.PresentationUniqueKey; - return episodes.Where(i => - { - if ((i.ParentIndexNumber ?? -1) == seasonNumber) - { - return true; - } - if (!i.ParentIndexNumber.HasValue) - { - var season = i.Season; - return season != null && string.Equals(season.PresentationUniqueKey, seasonPresentationKey, StringComparison.OrdinalIgnoreCase); - } - - return false; - }); - } - else - { - var seasonPresentationKey = parentSeason.PresentationUniqueKey; + var supportSpecialsInSeason = includeSpecials && seasonNumber.HasValue && seasonNumber.Value != 0; - return episodes.Where(episode => + return episodes.Where(episode => + { + var currentSeasonNumber = supportSpecialsInSeason ? episode.AiredSeasonNumber : episode.ParentIndexNumber; + if (currentSeasonNumber.HasValue && seasonNumber.HasValue && currentSeasonNumber.Value == seasonNumber.Value) { - var currentSeasonNumber = episode.AiredSeasonNumber; + return true; + } - if (currentSeasonNumber.HasValue && seasonNumber.HasValue && currentSeasonNumber.Value == seasonNumber.Value) - { - return true; - } + if (!currentSeasonNumber.HasValue && !seasonNumber.HasValue && parentSeason.LocationType == LocationType.Virtual) + { + return true; + } - if (!episode.ParentIndexNumber.HasValue) - { - var season = episode.Season; - return season != null && string.Equals(season.PresentationUniqueKey, seasonPresentationKey, StringComparison.OrdinalIgnoreCase); - } + if (!episode.ParentIndexNumber.HasValue) + { + var season = episode.Season; + return season != null && string.Equals(season.PresentationUniqueKey, seasonPresentationKey, StringComparison.OrdinalIgnoreCase); + } - return false; - }); - } + return false; + }); } protected override bool GetBlockUnratedValue(UserPolicy config) |
