diff options
Diffstat (limited to 'MediaBrowser.Providers/Music')
4 files changed, 47 insertions, 23 deletions
diff --git a/MediaBrowser.Providers/Music/AlbumMetadataService.cs b/MediaBrowser.Providers/Music/AlbumMetadataService.cs index 2af3667d0..7c193b4d5 100644 --- a/MediaBrowser.Providers/Music/AlbumMetadataService.cs +++ b/MediaBrowser.Providers/Music/AlbumMetadataService.cs @@ -1,12 +1,15 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; +using System.Threading.Tasks; using Jellyfin.Data.Enums; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -29,14 +32,16 @@ public class AlbumMetadataService : MetadataService<MusicAlbum, AlbumInfo> /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param> /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param> /// <param name="externalDataManager">Instance of the <see cref="IExternalDataManager"/> interface.</param> + /// <param name="itemRepository">Instance of the <see cref="IItemRepository"/> interface.</param> public AlbumMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger<AlbumMetadataService> logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } @@ -54,6 +59,16 @@ public class AlbumMetadataService : MetadataService<MusicAlbum, AlbumInfo> => item.GetRecursiveChildren(i => i is Audio); /// <inheritdoc /> + protected override Task AfterMetadataRefresh(MusicAlbum item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) + { + base.AfterMetadataRefresh(item, refreshOptions, cancellationToken); + + SetPeople(item); + + return Task.CompletedTask; + } + + /// <inheritdoc /> protected override ItemUpdateType UpdateMetadataFromChildren(MusicAlbum item, IReadOnlyList<BaseItem> children, bool isFullRefresh, ItemUpdateType currentUpdateType) { var updateType = base.UpdateMetadataFromChildren(item, children, isFullRefresh, currentUpdateType); @@ -83,7 +98,6 @@ public class AlbumMetadataService : MetadataService<MusicAlbum, AlbumInfo> updateType |= SetArtistsFromSongs(item, songs); updateType |= SetAlbumArtistFromSongs(item, songs); updateType |= SetAlbumFromSongs(item, songs); - updateType |= SetPeople(item); } return updateType; @@ -178,37 +192,38 @@ public class AlbumMetadataService : MetadataService<MusicAlbum, AlbumInfo> } } - private ItemUpdateType SetPeople(MusicAlbum item) + private void SetPeople(MusicAlbum item) { - var updateType = ItemUpdateType.None; - if (item.AlbumArtists.Any() || item.Artists.Any()) { var people = new List<PersonInfo>(); foreach (var albumArtist in item.AlbumArtists) { - PeopleHelper.AddPerson(people, new PersonInfo + if (!string.IsNullOrWhiteSpace(albumArtist)) { - Name = albumArtist.Trim(), - Type = PersonKind.AlbumArtist - }); + PeopleHelper.AddPerson(people, new PersonInfo + { + Name = albumArtist, + Type = PersonKind.AlbumArtist + }); + } } foreach (var artist in item.Artists) { - PeopleHelper.AddPerson(people, new PersonInfo + if (!string.IsNullOrWhiteSpace(artist)) { - Name = artist.Trim(), - Type = PersonKind.Artist - }); + PeopleHelper.AddPerson(people, new PersonInfo + { + Name = artist, + Type = PersonKind.Artist + }); + } } LibraryManager.UpdatePeople(item, people); - updateType |= ItemUpdateType.MetadataEdit; } - - return updateType; } /// <inheritdoc /> diff --git a/MediaBrowser.Providers/Music/ArtistMetadataService.cs b/MediaBrowser.Providers/Music/ArtistMetadataService.cs index 9bac68627..22999077b 100644 --- a/MediaBrowser.Providers/Music/ArtistMetadataService.cs +++ b/MediaBrowser.Providers/Music/ArtistMetadataService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.IO; using MediaBrowser.Providers.Manager; @@ -25,14 +26,16 @@ public class ArtistMetadataService : MetadataService<MusicArtist, ArtistInfo> /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param> /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param> /// <param name="externalDataManager">Instance of the <see cref="IExternalDataManager"/> interface.</param> + /// <param name="itemRepository">Instance of the <see cref="IItemRepository"/> interface.</param> public ArtistMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger<ArtistMetadataService> logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Music/AudioMetadataService.cs b/MediaBrowser.Providers/Music/AudioMetadataService.cs index ccc1c90c0..f4d17686f 100644 --- a/MediaBrowser.Providers/Music/AudioMetadataService.cs +++ b/MediaBrowser.Providers/Music/AudioMetadataService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -26,14 +27,16 @@ public class AudioMetadataService : MetadataService<Audio, SongInfo> /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param> /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param> /// <param name="externalDataManager">Instance of the <see cref="IExternalDataManager"/> interface.</param> + /// <param name="itemRepository">Instance of the <see cref="IItemRepository"/> interface.</param> public AudioMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger<AudioMetadataService> logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } diff --git a/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs b/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs index cde14539a..345e13460 100644 --- a/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs +++ b/MediaBrowser.Providers/Music/MusicVideoMetadataService.cs @@ -4,6 +4,7 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -26,14 +27,16 @@ public class MusicVideoMetadataService : MetadataService<MusicVideo, MusicVideoI /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param> /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param> /// <param name="externalDataManager">Instance of the <see cref="IExternalDataManager"/> interface.</param> + /// <param name="itemRepository">Instance of the <see cref="IItemRepository"/> interface.</param> public MusicVideoMetadataService( IServerConfigurationManager serverConfigurationManager, ILogger<MusicVideoMetadataService> logger, IProviderManager providerManager, IFileSystem fileSystem, ILibraryManager libraryManager, - IExternalDataManager externalDataManager) - : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager) + IExternalDataManager externalDataManager, + IItemRepository itemRepository) + : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager, externalDataManager, itemRepository) { } |
