BaseItemManager.cs 3.0 KB

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