AudioBookMetadataService.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma warning disable CS1591
  2. using MediaBrowser.Controller.Configuration;
  3. using MediaBrowser.Controller.Entities;
  4. using MediaBrowser.Controller.Library;
  5. using MediaBrowser.Controller.Providers;
  6. using MediaBrowser.Model.Entities;
  7. using MediaBrowser.Model.IO;
  8. using MediaBrowser.Providers.Manager;
  9. using Microsoft.Extensions.Logging;
  10. namespace MediaBrowser.Providers.Books
  11. {
  12. public class AudioBookMetadataService : MetadataService<AudioBook, SongInfo>
  13. {
  14. public AudioBookMetadataService(
  15. IServerConfigurationManager serverConfigurationManager,
  16. ILogger<AudioBookMetadataService> logger,
  17. IProviderManager providerManager,
  18. IFileSystem fileSystem,
  19. ILibraryManager libraryManager)
  20. : base(serverConfigurationManager, logger, providerManager, fileSystem, libraryManager)
  21. {
  22. }
  23. /// <inheritdoc />
  24. protected override void MergeData(
  25. MetadataResult<AudioBook> source,
  26. MetadataResult<AudioBook> target,
  27. MetadataField[] lockedFields,
  28. bool replaceData,
  29. bool mergeMetadataSettings)
  30. {
  31. ProviderUtils.MergeBaseItemData(source, target, lockedFields, replaceData, mergeMetadataSettings);
  32. var sourceItem = source.Item;
  33. var targetItem = target.Item;
  34. if (replaceData || targetItem.Artists.Count == 0)
  35. {
  36. targetItem.Artists = sourceItem.Artists;
  37. }
  38. if (replaceData || string.IsNullOrEmpty(targetItem.Album))
  39. {
  40. targetItem.Album = sourceItem.Album;
  41. }
  42. }
  43. }
  44. }