aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Music/ArtistMetadataService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Music/ArtistMetadataService.cs')
-rw-r--r--MediaBrowser.Providers/Music/ArtistMetadataService.cs40
1 files changed, 14 insertions, 26 deletions
diff --git a/MediaBrowser.Providers/Music/ArtistMetadataService.cs b/MediaBrowser.Providers/Music/ArtistMetadataService.cs
index 70ae525445..7741a3f433 100644
--- a/MediaBrowser.Providers/Music/ArtistMetadataService.cs
+++ b/MediaBrowser.Providers/Music/ArtistMetadataService.cs
@@ -10,41 +10,29 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using MediaBrowser.Model.IO;
+using MediaBrowser.Controller.Entities;
namespace MediaBrowser.Providers.Music
{
public class ArtistMetadataService : MetadataService<MusicArtist, ArtistInfo>
{
- protected override ItemUpdateType BeforeSaveInternal(MusicArtist item, bool isFullRefresh, ItemUpdateType currentUpdateType)
+ protected override IList<BaseItem> GetChildrenForMetadataUpdates(MusicArtist item)
{
- var updateType = base.BeforeSaveInternal(item, isFullRefresh, currentUpdateType);
-
- if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
- {
- if (!item.IsLocked && !item.LockedFields.Contains(MetadataFields.Genres))
+ return item.IsAccessedByName ?
+ item.GetTaggedItems(new Controller.Entities.InternalItemsQuery
{
- var taggedItems = item.IsAccessedByName ?
- item.GetTaggedItems(new Controller.Entities.InternalItemsQuery()
- {
- Recursive = true,
- IsFolder = false
- }) :
- item.GetRecursiveChildren(i => i is IHasArtist && !i.IsFolder);
-
- var currentList = item.Genres;
-
- item.Genres = taggedItems.SelectMany(i => i.Genres)
- .DistinctNames()
- .ToList();
+ Recursive = true,
+ IsFolder = false
+ }) :
+ item.GetRecursiveChildren(i => i is IHasArtist && !i.IsFolder);
+ }
- if (currentList.Count != item.Genres.Count || !currentList.OrderBy(i => i).SequenceEqual(item.Genres.OrderBy(i => i), StringComparer.OrdinalIgnoreCase))
- {
- updateType = updateType | ItemUpdateType.MetadataEdit;
- }
- }
+ protected override bool EnableUpdatingGenresFromChildren
+ {
+ get
+ {
+ return true;
}
-
- return updateType;
}
protected override void MergeData(MetadataResult<MusicArtist> source, MetadataResult<MusicArtist> target, MetadataFields[] lockedFields, bool replaceData, bool mergeMetadataSettings)