| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | using MediaBrowser.Controller.Entities.Audio;using MediaBrowser.Model.Channels;using MediaBrowser.Model.Configuration;using MediaBrowser.Model.Dto;using MediaBrowser.Model.Entities;using System.Collections.Generic;using System.Linq;using System.Threading;namespace MediaBrowser.Controller.Channels{    public class ChannelAudioItem : Audio, IChannelMediaItem    {        public string ExternalId { get; set; }        public string ChannelId { get; set; }        public string DataVersion { get; set; }        public ChannelItemType ChannelItemType { get; set; }        public bool IsInfiniteStream { get; set; }        public ChannelMediaContentType ContentType { get; set; }        public string OriginalImageUrl { get; set; }        public List<ChannelMediaInfo> ChannelMediaSources { get; set; }                protected override bool GetBlockUnratedValue(UserConfiguration config)        {            return config.BlockUnratedItems.Contains(UnratedItem.ChannelContent);        }        public override string GetUserDataKey()        {            return ExternalId;        }        public override bool SupportsLocalMetadata        {            get            {                return false;            }        }        public override bool IsSaveLocalMetadataEnabled()        {            return false;        }        public ChannelAudioItem()        {            ChannelMediaSources = new List<ChannelMediaInfo>();        }        public override LocationType LocationType        {            get            {                if (string.IsNullOrEmpty(Path))                {                    return LocationType.Remote;                }                                return base.LocationType;            }        }        protected override string GetInternalMetadataPath(string basePath)        {            return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N"));        }        public override IEnumerable<MediaSourceInfo> GetMediaSources(bool enablePathSubstitution)        {            var list = base.GetMediaSources(enablePathSubstitution).ToList();            var sources = ChannelManager.GetChannelItemMediaSources(Id.ToString("N"), false, CancellationToken.None)                    .Result.ToList();            if (sources.Count > 0)            {                return sources;            }            list.InsertRange(0, sources);            return list;        }    }}
 |