BaseItemManager.cs 2.6 KB

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