AudioBookMetadataService.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using MediaBrowser.Controller.Configuration;
  2. using MediaBrowser.Controller.Entities;
  3. using MediaBrowser.Controller.Library;
  4. using MediaBrowser.Controller.Providers;
  5. using MediaBrowser.Model.Entities;
  6. using MediaBrowser.Model.IO;
  7. using MediaBrowser.Providers.Manager;
  8. using Microsoft.Extensions.Logging;
  9. namespace MediaBrowser.Providers.Books
  10. {
  11. public class AudioBookMetadataService : MetadataService<AudioBook, SongInfo>
  12. {
  13. public AudioBookMetadataService(
  14. IServerConfigurationManager serverConfigurationManager,
  15. ILogger logger,
  16. IProviderManager providerManager,
  17. IFileSystem fileSystem,
  18. IUserDataManager userDataManager,
  19. ILibraryManager libraryManager)
  20. : base(serverConfigurationManager, logger, providerManager, fileSystem, userDataManager, libraryManager)
  21. {
  22. }
  23. /// <inheritdoc />
  24. protected override void MergeData(
  25. MetadataResult<AudioBook> source,
  26. MetadataResult<AudioBook> target,
  27. MetadataFields[] 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. }