aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library/Validators
diff options
context:
space:
mode:
authorEric Reed <ebr@mediabrowser3.com>2013-12-04 15:07:56 -0500
committerEric Reed <ebr@mediabrowser3.com>2013-12-04 15:07:56 -0500
commit6819be81601f6a95a60ce2735474ae0015d19bff (patch)
tree7e2743455e53d4a028fae789f2fc74a7c5ae87b9 /MediaBrowser.Server.Implementations/Library/Validators
parent190be6311fbdf3a73f9c8e330f44edafe7764284 (diff)
parentcb882a4b48e9cf03cd363c54d93338ad62153e7e (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/Validators')
-rw-r--r--MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs75
-rw-r--r--MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs2
6 files changed, 12 insertions, 73 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs
index 7d46d7060..40ef5304c 100644
--- a/MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs
+++ b/MediaBrowser.Server.Implementations/Library/Validators/ArtistsValidator.cs
@@ -57,7 +57,6 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
{
var allItems = _libraryManager.RootFolder.GetRecursiveChildren();
- var allMusicArtists = allItems.OfType<MusicArtist>().ToList();
var allSongs = allItems.OfType<Audio>().ToList();
var innerProgress = new ActionableProgress<double>();
@@ -80,36 +79,8 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
{
cancellationToken.ThrowIfCancellationRequested();
- artist.ValidateImages();
- artist.ValidateBackdrops();
-
- var musicArtist = Artist.FindMusicArtist(artist, allMusicArtists);
-
- if (musicArtist != null)
- {
- MergeImages(musicArtist.Images, artist.Images);
-
- // Merge backdrops
- var additionalBackdrops = musicArtist
- .BackdropImagePaths
- .Except(artist.BackdropImagePaths)
- .ToList();
-
- var sources = additionalBackdrops
- .Select(musicArtist.GetImageSourceInfo)
- .Where(i => i != null)
- .ToList();
-
- foreach (var path in additionalBackdrops)
- {
- artist.RemoveImageSourceForPath(path);
- }
-
- artist.BackdropImagePaths.AddRange(additionalBackdrops);
- artist.ImageSources.AddRange(sources);
- }
-
- if (!artist.LockedFields.Contains(MetadataFields.Genres))
+ // Only do this for artists accessed by name. Folder-based artists use ArtistInfoFromSongsProvider
+ if (artist.IsAccessedByName && !artist.LockedFields.Contains(MetadataFields.Genres))
{
// Avoid implicitly captured closure
var artist1 = artist;
@@ -145,7 +116,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
/// <param name="artist">The artist.</param>
/// <param name="userId">The user id.</param>
/// <param name="allItems">All items.</param>
- private void SetItemCounts(Artist artist, Guid? userId, IEnumerable<IHasArtist> allItems)
+ private void SetItemCounts(MusicArtist artist, Guid? userId, IEnumerable<IHasArtist> allItems)
{
var name = artist.Name;
@@ -166,26 +137,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
if (userId.HasValue)
{
- artist.UserItemCounts[userId.Value] = counts;
- }
- }
-
- /// <summary>
- /// Merges the images.
- /// </summary>
- /// <param name="source">The source.</param>
- /// <param name="target">The target.</param>
- private void MergeImages(Dictionary<ImageType, string> source, Dictionary<ImageType, string> target)
- {
- foreach (var key in source.Keys
- .Where(k => !target.ContainsKey(k)))
- {
- string path;
-
- if (source.TryGetValue(key, out path))
- {
- target[key] = path;
- }
+ artist.SetItemByNameCounts(userId.Value, counts);
}
}
@@ -196,25 +148,12 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
/// <param name="cancellationToken">The cancellation token.</param>
/// <param name="progress">The progress.</param>
/// <returns>Task{Artist[]}.</returns>
- private async Task<List<Artist>> GetAllArtists(IEnumerable<Audio> allSongs, CancellationToken cancellationToken, IProgress<double> progress)
+ private async Task<List<MusicArtist>> GetAllArtists(IEnumerable<Audio> allSongs, CancellationToken cancellationToken, IProgress<double> progress)
{
- var allArtists = allSongs
- .SelectMany(i =>
- {
- var list = new List<string>();
-
- if (!string.IsNullOrEmpty(i.AlbumArtist))
- {
- list.Add(i.AlbumArtist);
- }
- list.AddRange(i.Artists);
-
- return list;
- })
- .Distinct(StringComparer.OrdinalIgnoreCase)
+ var allArtists = _libraryManager.GetAllArtists(allSongs)
.ToList();
- var returnArtists = new List<Artist>(allArtists.Count);
+ var returnArtists = new List<MusicArtist>(allArtists.Count);
var numComplete = 0;
var numArtists = allArtists.Count;
diff --git a/MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs
index d21a123c0..c7af7a238 100644
--- a/MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs
+++ b/MediaBrowser.Server.Implementations/Library/Validators/GameGenresValidator.cs
@@ -106,7 +106,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
{
var itemCounts = CountHelpers.GetCounts(counts[libraryId]);
- itemByName.UserItemCounts[libraryId] = itemCounts;
+ itemByName.SetItemByNameCounts(libraryId, itemCounts);
}
await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false);
diff --git a/MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs
index 0670e1a85..cb1253df0 100644
--- a/MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs
+++ b/MediaBrowser.Server.Implementations/Library/Validators/GenresValidator.cs
@@ -107,7 +107,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
{
var itemCounts = CountHelpers.GetCounts(counts[libraryId]);
- itemByName.UserItemCounts[libraryId] = itemCounts;
+ itemByName.SetItemByNameCounts(libraryId, itemCounts);
}
await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false);
diff --git a/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs
index 166f557cf..57a6a612b 100644
--- a/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs
+++ b/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs
@@ -107,7 +107,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
{
var itemCounts = CountHelpers.GetCounts(counts[libraryId]);
- itemByName.UserItemCounts[libraryId] = itemCounts;
+ itemByName.SetItemByNameCounts(libraryId, itemCounts);
}
await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false);
diff --git a/MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs b/MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs
index cfc7f4310..0104b2b7e 100644
--- a/MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs
+++ b/MediaBrowser.Server.Implementations/Library/Validators/PeoplePostScanTask.cs
@@ -94,7 +94,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
{
var itemCounts = CountHelpers.GetCounts(counts[libraryId]);
- itemByName.UserItemCounts[libraryId] = itemCounts;
+ itemByName.SetItemByNameCounts(libraryId, itemCounts);
}
}
catch (Exception ex)
diff --git a/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs
index 02c7a94b4..0f4ff562e 100644
--- a/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs
+++ b/MediaBrowser.Server.Implementations/Library/Validators/StudiosValidator.cs
@@ -106,7 +106,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators
{
var itemCounts = CountHelpers.GetCounts(counts[libraryId]);
- itemByName.UserItemCounts[libraryId] = itemCounts;
+ itemByName.SetItemByNameCounts(libraryId, itemCounts);
}
await itemByName.RefreshMetadata(cancellationToken).ConfigureAwait(false);