diff options
| author | Luke <luke.pulverenti@gmail.com> | 2016-07-01 11:52:05 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-07-01 11:52:05 -0400 |
| commit | d364ddd4298825be189e7d282a05dfb158185f72 (patch) | |
| tree | 7aa1d2039d9c62a9d2f390cd00e690906da2a111 /MediaBrowser.Controller | |
| parent | 9cf815214fa636e5f94bf72c9fe19addef28454f (diff) | |
| parent | 0920c9b3a1f02066573b1fb7c4ba186c0558e5c4 (diff) | |
Merge pull request #1906 from MediaBrowser/dev
next up upgrade fixes
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/TV/Series.cs | 23 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserViewBuilder.cs | 3 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/ILibraryManager.cs | 7 |
4 files changed, 20 insertions, 17 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 0dd7b3c836..9d1a45689f 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1655,7 +1655,7 @@ namespace MediaBrowser.Controller.Entities if (datePlayed.HasValue) { - // Incremenet + // Increment data.PlayCount++; } @@ -1667,7 +1667,7 @@ namespace MediaBrowser.Controller.Entities data.PlaybackPositionTicks = 0; } - data.LastPlayedDate = datePlayed ?? data.LastPlayedDate; + data.LastPlayedDate = datePlayed ?? data.LastPlayedDate ?? DateTime.UtcNow; data.Played = true; await UserDataManager.SaveUserData(user.Id, this, data, UserDataSaveReason.TogglePlayed, CancellationToken.None).ConfigureAwait(false); diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs index 1cc496b352..09ddbc6b60 100644 --- a/MediaBrowser.Controller/Entities/TV/Series.cs +++ b/MediaBrowser.Controller/Entities/TV/Series.cs @@ -111,11 +111,20 @@ namespace MediaBrowser.Controller.Entities.TV } } + private static string GetUniqueSeriesKey(BaseItem series) + { + if (ConfigurationManager.Configuration.SchemaVersion < 97) + { + return series.Id.ToString("N"); + } + return series.PresentationUniqueKey; + } + public override int GetChildCount(User user) { var result = LibraryManager.GetItemsResult(new InternalItemsQuery(user) { - AncestorWithPresentationUniqueKey = PresentationUniqueKey, + AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this), IncludeItemTypes = new[] { typeof(Season).Name }, SortBy = new[] { ItemSortBy.SortName }, IsVirtualItem = false, @@ -202,7 +211,7 @@ namespace MediaBrowser.Controller.Entities.TV if (query.Recursive) { - query.AncestorWithPresentationUniqueKey = PresentationUniqueKey; + query.AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this); if (query.SortBy.Length == 0) { query.SortBy = new[] { ItemSortBy.SortName }; @@ -228,7 +237,7 @@ namespace MediaBrowser.Controller.Entities.TV seasons = LibraryManager.GetItemList(new InternalItemsQuery(user) { - AncestorWithPresentationUniqueKey = PresentationUniqueKey, + AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this), IncludeItemTypes = new[] { typeof(Season).Name }, SortBy = new[] { ItemSortBy.SortName } @@ -257,7 +266,7 @@ namespace MediaBrowser.Controller.Entities.TV { var allItems = LibraryManager.GetItemList(new InternalItemsQuery(user) { - AncestorWithPresentationUniqueKey = PresentationUniqueKey, + AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this), IncludeItemTypes = new[] { typeof(Episode).Name, typeof(Season).Name }, SortBy = new[] { ItemSortBy.SortName } @@ -354,7 +363,7 @@ namespace MediaBrowser.Controller.Entities.TV { return LibraryManager.GetItemList(new InternalItemsQuery(user) { - AncestorWithPresentationUniqueKey = PresentationUniqueKey, + AncestorWithPresentationUniqueKey = GetUniqueSeriesKey(this), IncludeItemTypes = new[] { typeof(Episode).Name }, SortBy = new[] { ItemSortBy.SortName } @@ -423,7 +432,7 @@ namespace MediaBrowser.Controller.Entities.TV public static IEnumerable<Episode> FilterEpisodesBySeason(IEnumerable<Episode> episodes, Season parentSeason, bool includeSpecials) { var seasonNumber = parentSeason.IndexNumber; - var seasonPresentationKey = parentSeason.PresentationUniqueKey; + var seasonPresentationKey = GetUniqueSeriesKey(parentSeason); var supportSpecialsInSeason = includeSpecials && seasonNumber.HasValue && seasonNumber.Value != 0; @@ -443,7 +452,7 @@ namespace MediaBrowser.Controller.Entities.TV if (!episode.ParentIndexNumber.HasValue) { var season = episode.Season; - return season != null && string.Equals(season.PresentationUniqueKey, seasonPresentationKey, StringComparison.OrdinalIgnoreCase); + return season != null && string.Equals(GetUniqueSeriesKey(season), seasonPresentationKey, StringComparison.OrdinalIgnoreCase); } return false; diff --git a/MediaBrowser.Controller/Entities/UserViewBuilder.cs b/MediaBrowser.Controller/Entities/UserViewBuilder.cs index 175a7240c6..e2228bcaf6 100644 --- a/MediaBrowser.Controller/Entities/UserViewBuilder.cs +++ b/MediaBrowser.Controller/Entities/UserViewBuilder.cs @@ -20,6 +20,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Configuration; using MediaBrowser.Model.Configuration; +using MoreLinq; namespace MediaBrowser.Controller.Entities { @@ -1200,7 +1201,7 @@ namespace MediaBrowser.Controller.Entities { var user = query.User; - items = libraryManager.ReplaceVideosWithPrimaryVersions(items); + items = items.DistinctBy(i => i.PresentationUniqueKey, StringComparer.OrdinalIgnoreCase); if (query.SortBy.Length > 0) { diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index 4e641b0056..ad38b9ea5e 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -309,13 +309,6 @@ namespace MediaBrowser.Controller.Library Task DeleteItem(BaseItem item, DeleteOptions options); /// <summary> - /// Replaces the videos with primary versions. - /// </summary> - /// <param name="items">The items.</param> - /// <returns>IEnumerable{BaseItem}.</returns> - IEnumerable<BaseItem> ReplaceVideosWithPrimaryVersions(IEnumerable<BaseItem> items); - - /// <summary> /// Gets the named view. /// </summary> /// <param name="user">The user.</param> |
