ChannelAudioItem.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using MediaBrowser.Controller.Entities.Audio;
  2. using MediaBrowser.Model.Channels;
  3. using MediaBrowser.Model.Configuration;
  4. using MediaBrowser.Model.Dto;
  5. using MediaBrowser.Model.Entities;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Threading;
  9. namespace MediaBrowser.Controller.Channels
  10. {
  11. public class ChannelAudioItem : Audio, IChannelMediaItem
  12. {
  13. public string ExternalId { get; set; }
  14. public string ChannelId { get; set; }
  15. public string DataVersion { get; set; }
  16. public ChannelItemType ChannelItemType { get; set; }
  17. public bool IsInfiniteStream { get; set; }
  18. public ChannelMediaContentType ContentType { get; set; }
  19. public string OriginalImageUrl { get; set; }
  20. public List<ChannelMediaInfo> ChannelMediaSources { get; set; }
  21. protected override bool GetBlockUnratedValue(UserConfiguration config)
  22. {
  23. return config.BlockUnratedItems.Contains(UnratedItem.ChannelContent);
  24. }
  25. public override string GetUserDataKey()
  26. {
  27. return ExternalId;
  28. }
  29. public override bool SupportsLocalMetadata
  30. {
  31. get
  32. {
  33. return false;
  34. }
  35. }
  36. public override bool IsSaveLocalMetadataEnabled()
  37. {
  38. return false;
  39. }
  40. public ChannelAudioItem()
  41. {
  42. ChannelMediaSources = new List<ChannelMediaInfo>();
  43. }
  44. public override LocationType LocationType
  45. {
  46. get
  47. {
  48. if (string.IsNullOrEmpty(Path))
  49. {
  50. return LocationType.Remote;
  51. }
  52. return base.LocationType;
  53. }
  54. }
  55. protected override string GetInternalMetadataPath(string basePath)
  56. {
  57. return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N"));
  58. }
  59. public override IEnumerable<MediaSourceInfo> GetMediaSources(bool enablePathSubstitution)
  60. {
  61. var list = base.GetMediaSources(enablePathSubstitution).ToList();
  62. var sources = ChannelManager.GetChannelItemMediaSources(Id.ToString("N"), false, CancellationToken.None)
  63. .Result.ToList();
  64. if (sources.Count > 0)
  65. {
  66. return sources;
  67. }
  68. list.InsertRange(0, sources);
  69. return list;
  70. }
  71. }
  72. }