BaseItemManager.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using Jellyfin.Extensions;
  3. using MediaBrowser.Controller.Channels;
  4. using MediaBrowser.Controller.Configuration;
  5. using MediaBrowser.Controller.Entities;
  6. using MediaBrowser.Controller.Library;
  7. using MediaBrowser.Model.Configuration;
  8. namespace MediaBrowser.Controller.BaseItemManager
  9. {
  10. /// <inheritdoc />
  11. public class BaseItemManager : IBaseItemManager
  12. {
  13. private readonly IServerConfigurationManager _serverConfigurationManager;
  14. /// <summary>
  15. /// Initializes a new instance of the <see cref="BaseItemManager"/> class.
  16. /// </summary>
  17. /// <param name="serverConfigurationManager">Instance of the <see cref="IServerConfigurationManager"/> interface.</param>
  18. public BaseItemManager(IServerConfigurationManager serverConfigurationManager)
  19. {
  20. _serverConfigurationManager = serverConfigurationManager;
  21. }
  22. /// <inheritdoc />
  23. public bool IsMetadataFetcherEnabled(BaseItem baseItem, TypeOptions? libraryTypeOptions, string name)
  24. {
  25. if (baseItem is Channel)
  26. {
  27. // Hack alert.
  28. return true;
  29. }
  30. if (baseItem.SourceType == SourceType.Channel)
  31. {
  32. // Hack alert.
  33. return !baseItem.EnableMediaSourceDisplay;
  34. }
  35. if (libraryTypeOptions is not null)
  36. {
  37. return libraryTypeOptions.MetadataFetchers.Contains(name, StringComparison.OrdinalIgnoreCase);
  38. }
  39. var itemConfig = _serverConfigurationManager.GetMetadataOptionsForType(baseItem.GetType().Name);
  40. return itemConfig is null || !itemConfig.DisabledMetadataFetchers.Contains(name, StringComparison.OrdinalIgnoreCase);
  41. }
  42. /// <inheritdoc />
  43. public bool IsImageFetcherEnabled(BaseItem baseItem, TypeOptions? libraryTypeOptions, string name)
  44. {
  45. if (baseItem is Channel)
  46. {
  47. // Hack alert.
  48. return true;
  49. }
  50. if (baseItem.SourceType == SourceType.Channel)
  51. {
  52. // Hack alert.
  53. return !baseItem.EnableMediaSourceDisplay;
  54. }
  55. if (libraryTypeOptions is not null)
  56. {
  57. return libraryTypeOptions.ImageFetchers.Contains(name, StringComparison.OrdinalIgnoreCase);
  58. }
  59. var itemConfig = _serverConfigurationManager.GetMetadataOptionsForType(baseItem.GetType().Name);
  60. return itemConfig is null || !itemConfig.DisabledImageFetchers.Contains(name, StringComparison.OrdinalIgnoreCase);
  61. }
  62. }
  63. }