diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-12-06 03:24:29 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-12-06 03:24:29 -0500 |
| commit | 016d8301f5060d899cccbfad67823fa9e628d260 (patch) | |
| tree | e2881e5e576102122ac79aced7c4fb6f1bcd28a3 /MediaBrowser.Controller/Entities | |
| parent | e9a3690079e9676e1d315019d80da09c52d230f0 (diff) | |
update series queries
Diffstat (limited to 'MediaBrowser.Controller/Entities')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Book.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/IHasSeries.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/InternalItemsQuery.cs | 1 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Episode.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Season.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Series.cs | 51 |
6 files changed, 68 insertions, 14 deletions
diff --git a/MediaBrowser.Controller/Entities/Book.cs b/MediaBrowser.Controller/Entities/Book.cs index 9ccc7125a..a6da389f0 100644 --- a/MediaBrowser.Controller/Entities/Book.cs +++ b/MediaBrowser.Controller/Entities/Book.cs @@ -19,6 +19,8 @@ namespace MediaBrowser.Controller.Entities } [IgnoreDataMember] + public string SeriesPresentationUniqueKey { get; set; } + [IgnoreDataMember] public string SeriesName { get; set; } [IgnoreDataMember] public Guid? SeriesId { get; set; } @@ -33,6 +35,10 @@ namespace MediaBrowser.Controller.Entities { return SeriesName; } + public string FindSeriesPresentationUniqueKey() + { + return SeriesPresentationUniqueKey; + } [IgnoreDataMember] public override bool EnableRefreshOnDateModifiedChange diff --git a/MediaBrowser.Controller/Entities/IHasSeries.cs b/MediaBrowser.Controller/Entities/IHasSeries.cs index 531f58788..203be93e8 100644 --- a/MediaBrowser.Controller/Entities/IHasSeries.cs +++ b/MediaBrowser.Controller/Entities/IHasSeries.cs @@ -15,5 +15,7 @@ namespace MediaBrowser.Controller.Entities string FindSeriesSortName(); Guid? SeriesId { get; set; } Guid? FindSeriesId(); + string SeriesPresentationUniqueKey { get; set; } + string FindSeriesPresentationUniqueKey(); } } diff --git a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs index 17ef81db9..a2d278a71 100644 --- a/MediaBrowser.Controller/Entities/InternalItemsQuery.cs +++ b/MediaBrowser.Controller/Entities/InternalItemsQuery.cs @@ -147,6 +147,7 @@ namespace MediaBrowser.Controller.Entities public string[] ArtistNames { get; set; } public string[] ExcludeArtistIds { get; set; } public string AncestorWithPresentationUniqueKey { get; set; } + public string SeriesPresentationUniqueKey { get; set; } public bool GroupByPresentationUniqueKey { get; set; } public bool EnableTotalRecordCount { get; set; } diff --git a/MediaBrowser.Controller/Entities/TV/Episode.cs b/MediaBrowser.Controller/Entities/TV/Episode.cs index 29a63f317..2bcccf5e8 100644 --- a/MediaBrowser.Controller/Entities/TV/Episode.cs +++ b/MediaBrowser.Controller/Entities/TV/Episode.cs @@ -165,13 +165,22 @@ namespace MediaBrowser.Controller.Entities.TV { return FindParent<Season>() != null; } - } + }
+
+ [IgnoreDataMember]
+ public string SeriesPresentationUniqueKey { get; set; }
[IgnoreDataMember] public string SeriesName { get; set; }
[IgnoreDataMember]
- public string SeasonName { get; set; } + public string SeasonName { get; set; }
+
+ public string FindSeriesPresentationUniqueKey()
+ {
+ var series = Series;
+ return series == null ? null : series.PresentationUniqueKey;
+ } public string FindSeasonName() {
diff --git a/MediaBrowser.Controller/Entities/TV/Season.cs b/MediaBrowser.Controller/Entities/TV/Season.cs index 2663a9dd5..e0cc496a1 100644 --- a/MediaBrowser.Controller/Entities/TV/Season.cs +++ b/MediaBrowser.Controller/Entities/TV/Season.cs @@ -208,11 +208,20 @@ namespace MediaBrowser.Controller.Entities.TV } [IgnoreDataMember] + public string SeriesPresentationUniqueKey { get; set; } + + [IgnoreDataMember] public string SeriesName { get; set; } [IgnoreDataMember] public Guid? SeriesId { get; set; } + public string FindSeriesPresentationUniqueKey() + { + var series = Series; + return series == null ? null : series.PresentationUniqueKey; + } + public string FindSeriesName() { var series = Series; diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index ef25faf91..92cd20769 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -95,12 +95,16 @@ namespace MediaBrowser.Controller.Entities.TV public override string CreatePresentationUniqueKey() { - var userdatakeys = GetUserDataKeys(); - - if (userdatakeys.Count > 1) + if (LibraryManager.GetLibraryOptions(this).EnableAutomaticSeriesGrouping) { - return AddLibrariesToPresentationUniqueKey(userdatakeys[0]); + var userdatakeys = GetUserDataKeys(); + + if (userdatakeys.Count > 1) + { + return AddLibrariesToPresentationUniqueKey(userdatakeys[0]); + } } + return base.CreatePresentationUniqueKey(); } @@ -131,9 +135,13 @@ namespace MediaBrowser.Controller.Entities.TV public override int GetChildCount(User user) { + var enableSeriesPresentationKey = ConfigurationManager.Configuration.EnableSeriesPresentationUniqueKey; + var seriesKey = GetUniqueSeriesKey(this); + var result = LibraryManager.GetItemsResult(new InternalItemsQuery(user) { - AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this), + AncestorWithPresentationUniqueKey = enableSeriesPresentationKey ? null : seriesKey, + SeriesPresentationUniqueKey = enableSeriesPresentationKey ? seriesKey : null, IncludeItemTypes = new[] { typeof(Season).Name }, IsVirtualItem = false, Limit = 0 @@ -144,9 +152,15 @@ namespace MediaBrowser.Controller.Entities.TV public override int GetRecursiveChildCount(User user) { - var query = new InternalItemsQuery(user); + var enableSeriesPresentationKey = ConfigurationManager.Configuration.EnableSeriesPresentationUniqueKey; + var seriesKey = GetUniqueSeriesKey(this); + + var query = new InternalItemsQuery(user) + { + AncestorWithPresentationUniqueKey = enableSeriesPresentationKey ? null : seriesKey, + SeriesPresentationUniqueKey = enableSeriesPresentationKey ? seriesKey : null, + }; - query.AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this); if (query.SortBy.Length == 0) { query.SortBy = new[] { ItemSortBy.SortName }; @@ -223,11 +237,13 @@ namespace MediaBrowser.Controller.Entities.TV { var config = user.Configuration; + var enableSeriesPresentationKey = ConfigurationManager.Configuration.EnableSeriesPresentationUniqueKey; var seriesKey = GetUniqueSeriesKey(this); var query = new InternalItemsQuery(user) { - AncestorWithPresentationUniqueKey = seriesKey, + AncestorWithPresentationUniqueKey = enableSeriesPresentationKey ? null : seriesKey, + SeriesPresentationUniqueKey = enableSeriesPresentationKey ? seriesKey : null, IncludeItemTypes = new[] { typeof(Season).Name }, SortBy = new[] { ItemSortBy.SortName } }; @@ -259,7 +275,11 @@ namespace MediaBrowser.Controller.Entities.TV if (query.Recursive) { - query.AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this); + var enableSeriesPresentationKey = ConfigurationManager.Configuration.EnableSeriesPresentationUniqueKey; + var seriesKey = GetUniqueSeriesKey(this); + + query.AncestorWithPresentationUniqueKey = enableSeriesPresentationKey ? null : seriesKey; + query.SeriesPresentationUniqueKey = enableSeriesPresentationKey ? seriesKey : null; if (query.SortBy.Length == 0) { query.SortBy = new[] { ItemSortBy.SortName }; @@ -281,11 +301,13 @@ namespace MediaBrowser.Controller.Entities.TV public IEnumerable<Episode> GetEpisodes(User user) { + var enableSeriesPresentationKey = ConfigurationManager.Configuration.EnableSeriesPresentationUniqueKey; var seriesKey = GetUniqueSeriesKey(this); var query = new InternalItemsQuery(user) { - AncestorWithPresentationUniqueKey = seriesKey, + AncestorWithPresentationUniqueKey = enableSeriesPresentationKey ? null : seriesKey, + SeriesPresentationUniqueKey = enableSeriesPresentationKey ? seriesKey : null, IncludeItemTypes = new[] { typeof(Episode).Name, typeof(Season).Name }, SortBy = new[] { ItemSortBy.SortName } }; @@ -387,14 +409,19 @@ namespace MediaBrowser.Controller.Entities.TV public IEnumerable<Episode> GetSeasonEpisodes(Season parentSeason, User user) { + var enableSeriesPresentationKey = ConfigurationManager.Configuration.EnableSeriesPresentationUniqueKey; + + var queryFromSeries = ConfigurationManager.Configuration.DisplaySpecialsWithinSeasons; + // add optimization when this setting is not enabled - var seriesKey = ConfigurationManager.Configuration.DisplaySpecialsWithinSeasons ? + var seriesKey = queryFromSeries ? GetUniqueSeriesKey(this) : GetUniqueSeriesKey(parentSeason); var query = new InternalItemsQuery(user) { - AncestorWithPresentationUniqueKey = seriesKey, + AncestorWithPresentationUniqueKey = queryFromSeries && enableSeriesPresentationKey ? null : seriesKey, + SeriesPresentationUniqueKey = queryFromSeries && enableSeriesPresentationKey ? seriesKey : null, IncludeItemTypes = new[] { typeof(Episode).Name }, SortBy = new[] { ItemSortBy.SortName } }; |
