diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-04-18 16:12:23 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-04-18 16:12:23 -0400 |
| commit | 8ca84af79245a77b361e64271e5933311c5914ea (patch) | |
| tree | 14a1f76343e1e6821c29ecf946b646d6fa5f89b4 /MediaBrowser.Controller | |
| parent | f0f3ca8c181b4144cbd21fb545d0629e92a9529b (diff) | |
| parent | b51beedd942e09b51d6300aedffebc0a47f5fd50 (diff) | |
Merge pull request #2585 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 66 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Movies/Movie.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Person.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserView.cs | 11 |
4 files changed, 65 insertions, 27 deletions
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index be41d896dd..268fefbd3e 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -13,6 +13,7 @@ using System.Threading.Tasks; using MediaBrowser.Common.IO; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Entities.Audio; +using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.IO; using MediaBrowser.Model.Channels; @@ -735,9 +736,72 @@ namespace MediaBrowser.Controller.Entities query.ParentId = query.ParentId ?? Id; } + if (RequiresPostFiltering2(query)) + { + return QueryWithPostFiltering2(query); + } + return LibraryManager.GetItemsResult(query); } + private QueryResult<BaseItem> QueryWithPostFiltering2(InternalItemsQuery query) + { + var startIndex = query.StartIndex; + var limit = query.Limit; + + query.StartIndex = null; + query.Limit = null; + + var itemsList = LibraryManager.GetItemList(query); + var user = query.User; + + if (user != null) + { + // needed for boxsets + itemsList = itemsList.Where(i => i.IsVisibleStandalone(query.User)); + } + + IEnumerable<BaseItem> returnItems; + int totalCount = 0; + + if (query.EnableTotalRecordCount) + { + var itemsArray = itemsList.ToArray(); + totalCount = itemsArray.Length; + returnItems = itemsArray; + } + else + { + returnItems = itemsList; + } + + if (limit.HasValue) + { + returnItems = returnItems.Skip(startIndex ?? 0).Take(limit.Value); + } + else if (startIndex.HasValue) + { + returnItems = returnItems.Skip(startIndex.Value); + } + + return new QueryResult<BaseItem> + { + TotalRecordCount = totalCount, + Items = returnItems.ToArray() + }; + } + + private bool RequiresPostFiltering2(InternalItemsQuery query) + { + if (query.IncludeItemTypes.Length == 1 && string.Equals(query.IncludeItemTypes[0], typeof(BoxSet).Name, StringComparison.OrdinalIgnoreCase)) + { + Logger.Debug("Query requires post-filtering due to BoxSet query"); + return true; + } + + return false; + } + private bool RequiresPostFiltering(InternalItemsQuery query) { if (LinkedChildren.Count > 0) @@ -1440,7 +1504,7 @@ namespace MediaBrowser.Controller.Entities { if (itemDto.RecursiveItemCount.Value > 0) { - var unplayedPercentage = (unplayedCount/itemDto.RecursiveItemCount.Value)*100; + var unplayedPercentage = (unplayedCount / itemDto.RecursiveItemCount.Value) * 100; dto.PlayedPercentage = 100 - unplayedPercentage; dto.Played = dto.PlayedPercentage.Value >= 100; } diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs index ce671a2dcf..371be3dfeb 100644 --- a/MediaBrowser.Controller/Entities/Movies/Movie.cs +++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs @@ -27,25 +27,16 @@ namespace MediaBrowser.Controller.Entities.Movies RemoteTrailers = new List<MediaUrl>(); LocalTrailerIds = new List<Guid>(); RemoteTrailerIds = new List<Guid>(); - Taglines = new List<string>(); } public string AwardSummary { get; set; } - public float? Metascore { get; set; } - public List<Guid> LocalTrailerIds { get; set; } public List<Guid> RemoteTrailerIds { get; set; } public List<MediaUrl> RemoteTrailers { get; set; } /// <summary> - /// Gets or sets the taglines. - /// </summary> - /// <value>The taglines.</value> - public List<string> Taglines { get; set; } - - /// <summary> /// Gets or sets the name of the TMDB collection. /// </summary> /// <value>The name of the TMDB collection.</value> diff --git a/MediaBrowser.Controller/Entities/Person.cs b/MediaBrowser.Controller/Entities/Person.cs index b68681d36a..005fb20142 100644 --- a/MediaBrowser.Controller/Entities/Person.cs +++ b/MediaBrowser.Controller/Entities/Person.cs @@ -15,12 +15,6 @@ namespace MediaBrowser.Controller.Entities /// </summary> public class Person : BaseItem, IItemByName, IHasLookupInfo<PersonLookupInfo> { - /// <summary> - /// Gets or sets the place of birth. - /// </summary> - /// <value>The place of birth.</value> - public string PlaceOfBirth { get; set; } - public override List<string> GetUserDataKeys() { var list = base.GetUserDataKeys(); diff --git a/MediaBrowser.Controller/Entities/UserView.cs b/MediaBrowser.Controller/Entities/UserView.cs index fb00937fb6..99601b2904 100644 --- a/MediaBrowser.Controller/Entities/UserView.cs +++ b/MediaBrowser.Controller/Entities/UserView.cs @@ -153,17 +153,6 @@ namespace MediaBrowser.Controller.Entities return types.Contains(viewType ?? string.Empty, StringComparer.OrdinalIgnoreCase); } - public static bool IsEligibleForEnhancedView(string viewType) - { - var types = new[] - { - CollectionType.Movies, - CollectionType.TvShows - }; - - return types.Contains(viewType ?? string.Empty, StringComparer.OrdinalIgnoreCase); - } - public static bool EnableOriginalFolder(string viewType) { var types = new[] |
