diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-06-20 23:35:22 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-06-20 23:35:22 -0400 |
| commit | 8bb10cb12f206aadb282d75cfb68dfca457fdc03 (patch) | |
| tree | aab466f8c640536ea993bb01493540075137f7d6 /MediaBrowser.Server.Implementations/Library | |
| parent | 64bdf1343401e24d68c9dfd315723e5c7588b7c5 (diff) | |
start people update
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library')
3 files changed, 24 insertions, 38 deletions
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<PersonInfo> GetPeople(BaseItem item) + { + return item.People ?? new List<PersonInfo>(); + } + + public List<PersonInfo> 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<PersonInfo> 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<PersonInfo> 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; - }); - } - /// <summary> /// Validates the people. /// </summary> @@ -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<string, bool>(StringComparer.OrdinalIgnoreCase); |
