aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/Entities
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-04-20 23:49:50 -0400
committerGitHub <noreply@github.com>2017-04-20 23:49:50 -0400
commitf525f5a89e68248a81ab7cfdfa044fbe45e51863 (patch)
treef029e380a0867d6e8db7895e63d9a69e0cfd426f /MediaBrowser.Controller/Entities
parent5dca8cb077fb544628f62939bbda292d8c91b637 (diff)
parentb9fe720e736abacc57ffb846e4ce6644bc110f61 (diff)
Merge pull request #2591 from MediaBrowser/beta
Beta
Diffstat (limited to 'MediaBrowser.Controller/Entities')
-rw-r--r--MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs33
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs66
-rw-r--r--MediaBrowser.Controller/Entities/Movies/Movie.cs9
-rw-r--r--MediaBrowser.Controller/Entities/MusicVideo.cs2
-rw-r--r--MediaBrowser.Controller/Entities/Person.cs6
-rw-r--r--MediaBrowser.Controller/Entities/UserView.cs11
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs2
7 files changed, 100 insertions, 29 deletions
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
index 6ad38033a4..f40ab3cdee 100644
--- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
+++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
@@ -9,6 +9,7 @@ using MediaBrowser.Model.Serialization;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Library;
+using MediaBrowser.Model.Dto;
namespace MediaBrowser.Controller.Entities.Audio
{
@@ -227,7 +228,39 @@ namespace MediaBrowser.Controller.Entities.Audio
// Refresh current item
await RefreshMetadata(parentRefreshOptions, cancellationToken).ConfigureAwait(false);
+ if (!refreshOptions.IsAutomated)
+ {
+ await RefreshArtists(refreshOptions, cancellationToken).ConfigureAwait(false);
+ }
+
progress.Report(100);
}
+
+ private async Task RefreshArtists(MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
+ {
+ var artists = AllArtists.Select(i =>
+ {
+ // This should not be necessary but we're seeing some cases of it
+ if (string.IsNullOrWhiteSpace(i))
+ {
+ return null;
+ }
+
+ var artist = LibraryManager.GetArtist(i);
+
+ if (!artist.IsAccessedByName)
+ {
+ return null;
+ }
+
+ return artist;
+
+ }).Where(i => i != null).ToList();
+
+ foreach (var artist in artists)
+ {
+ await artist.RefreshMetadata(refreshOptions, cancellationToken).ConfigureAwait(false);
+ }
+ }
}
}
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/MusicVideo.cs b/MediaBrowser.Controller/Entities/MusicVideo.cs
index c781ef85be..7344cb8e47 100644
--- a/MediaBrowser.Controller/Entities/MusicVideo.cs
+++ b/MediaBrowser.Controller/Entities/MusicVideo.cs
@@ -29,7 +29,7 @@ namespace MediaBrowser.Controller.Entities
{
get
{
- return true;
+ return false;
}
}
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[]
diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs
index 8906264191..0618fc489e 100644
--- a/MediaBrowser.Controller/Entities/Video.cs
+++ b/MediaBrowser.Controller/Entities/Video.cs
@@ -484,7 +484,7 @@ namespace MediaBrowser.Controller.Entities
return new[] {
new FileSystemMetadata
{
- FullName = System.IO.Path.GetDirectoryName(Path),
+ FullName = ContainingFolderPath,
IsDirectory = true
}
};