From 8bb10cb12f206aadb282d75cfb68dfca457fdc03 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 20 Jun 2015 23:35:22 -0400 Subject: start people update --- .../Library/LibraryManager.cs | 22 +++++++++++++ .../Library/SearchEngine.cs | 2 +- .../Library/Validators/PeopleValidator.cs | 38 +--------------------- 3 files changed, 24 insertions(+), 38 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library') diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index ed5dde4c5..351703e0c 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -32,6 +32,7 @@ using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; +using MoreLinq; using SortOrder = MediaBrowser.Model.Entities.SortOrder; namespace MediaBrowser.Server.Implementations.Library @@ -2055,5 +2056,26 @@ namespace MediaBrowser.Server.Implementations.Library item.ExtraType = ExtraType.Clip; } } + + + public List GetPeople(BaseItem item) + { + return item.People ?? new List(); + } + + public List GetAllPeople() + { + return RootFolder.GetRecursiveChildren() + .SelectMany(GetPeople) + .Where(i => !string.IsNullOrWhiteSpace(i.Name)) + .DistinctBy(i => i.Name, StringComparer.OrdinalIgnoreCase) + .ToList(); + } + + public Task UpdatePeople(BaseItem item, List people) + { + item.People = people; + return item.UpdateToRepository(ItemUpdateType.MetadataEdit, CancellationToken.None); + } } } diff --git a/MediaBrowser.Server.Implementations/Library/SearchEngine.cs b/MediaBrowser.Server.Implementations/Library/SearchEngine.cs index 72bbefae4..0cfa524eb 100644 --- a/MediaBrowser.Server.Implementations/Library/SearchEngine.cs +++ b/MediaBrowser.Server.Implementations/Library/SearchEngine.cs @@ -257,7 +257,7 @@ namespace MediaBrowser.Server.Implementations.Library if (query.IncludePeople) { // Find persons - var persons = items.SelectMany(i => i.People) + var persons = items.SelectMany(i => _libraryManager.GetPeople(i)) .Select(i => i.Name) .Where(i => !string.IsNullOrWhiteSpace(i)) .Distinct(StringComparer.OrdinalIgnoreCase) diff --git a/MediaBrowser.Server.Implementations/Library/Validators/PeopleValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/PeopleValidator.cs index 059ad2481..ef9dee8b5 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/PeopleValidator.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/PeopleValidator.cs @@ -72,39 +72,6 @@ namespace MediaBrowser.Server.Implementations.Library.Validators return options.DownloadOtherPeopleMetadata; } - private IEnumerable GetPeopleToValidate(BaseItem item, PeopleMetadataOptions options) - { - return item.People.Where(i => - { - if (i.IsType(PersonType.Actor)) - { - return options.DownloadActorMetadata; - } - if (i.IsType(PersonType.Director)) - { - return options.DownloadDirectorMetadata; - } - if (i.IsType(PersonType.Composer)) - { - return options.DownloadComposerMetadata; - } - if (i.IsType(PersonType.Writer)) - { - return options.DownloadWriterMetadata; - } - if (i.IsType(PersonType.Producer)) - { - return options.DownloadProducerMetadata; - } - if (i.IsType(PersonType.GuestStar)) - { - return options.DownloadGuestStarMetadata; - } - - return options.DownloadOtherPeopleMetadata; - }); - } - /// /// Validates the people. /// @@ -119,10 +86,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators var peopleOptions = _config.Configuration.PeopleMetadataOptions; - var people = _libraryManager.RootFolder.GetRecursiveChildren() - .SelectMany(i => i.People) - .Where(i => !string.IsNullOrWhiteSpace(i.Name)) - .ToList(); + var people = _libraryManager.GetAllPeople(); var dict = new Dictionary(StringComparer.OrdinalIgnoreCase); -- cgit v1.2.3