diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-03-17 21:45:41 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-03-17 21:45:41 -0400 |
| commit | 53749f077bedc84323ac13694c7f0963a65d1f06 (patch) | |
| tree | e00d218e8aa240eb1e33e24f331dcf1815036781 /MediaBrowser.Controller/Channels | |
| parent | 3d70929708b9ea61bc1ee6a4953dd206ea50e60d (diff) | |
progress on channels api
Diffstat (limited to 'MediaBrowser.Controller/Channels')
| -rw-r--r-- | MediaBrowser.Controller/Channels/Channel.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Channels/ChannelAudioItem.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Channels/ChannelItemInfo.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Channels/ChannelVideoItem.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Channels/IChannel.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Channels/IChannelItem.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Channels/IChannelManager.cs | 28 |
7 files changed, 106 insertions, 7 deletions
diff --git a/MediaBrowser.Controller/Channels/Channel.cs b/MediaBrowser.Controller/Channels/Channel.cs new file mode 100644 index 0000000000..c9a70f2bc2 --- /dev/null +++ b/MediaBrowser.Controller/Channels/Channel.cs @@ -0,0 +1,9 @@ +using MediaBrowser.Controller.Entities; + +namespace MediaBrowser.Controller.Channels +{ + public class Channel : BaseItem + { + public string OriginalChannelName { get; set; } + } +} diff --git a/MediaBrowser.Controller/Channels/ChannelAudioItem.cs b/MediaBrowser.Controller/Channels/ChannelAudioItem.cs new file mode 100644 index 0000000000..269a954560 --- /dev/null +++ b/MediaBrowser.Controller/Channels/ChannelAudioItem.cs @@ -0,0 +1,17 @@ +using MediaBrowser.Controller.Entities.Audio; + +namespace MediaBrowser.Controller.Channels +{ + public class ChannelAudioItem : Audio, IChannelItem + { + public string ExternalId { get; set; } + + public ChannelItemType ChannelItemType { get; set; } + + public bool IsInfiniteStream { get; set; } + + public ChannelMediaContentType ContentType { get; set; } + + public string OriginalImageUrl { get; set; } + } +} diff --git a/MediaBrowser.Controller/Channels/ChannelItemInfo.cs b/MediaBrowser.Controller/Channels/ChannelItemInfo.cs index 496fbfbf45..f80ad89110 100644 --- a/MediaBrowser.Controller/Channels/ChannelItemInfo.cs +++ b/MediaBrowser.Controller/Channels/ChannelItemInfo.cs @@ -1,9 +1,11 @@ using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Entities; +using System; using System.Collections.Generic; namespace MediaBrowser.Controller.Channels { - public class ChannelItemInfo + public class ChannelItemInfo : IHasProviderIds { public string Name { get; set; } @@ -23,18 +25,21 @@ namespace MediaBrowser.Controller.Channels public long? RunTimeTicks { get; set; } - public bool IsInfinite { get; set; } + public bool IsInfiniteStream { get; set; } public string ImageUrl { get; set; } public ChannelMediaType MediaType { get; set; } public ChannelMediaContentType ContentType { get; set; } + + public Dictionary<string, string> ProviderIds { get; set; } public ChannelItemInfo() { Genres = new List<string>(); People = new List<PersonInfo>(); + ProviderIds = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); } } diff --git a/MediaBrowser.Controller/Channels/ChannelVideoItem.cs b/MediaBrowser.Controller/Channels/ChannelVideoItem.cs new file mode 100644 index 0000000000..baa4c2a17e --- /dev/null +++ b/MediaBrowser.Controller/Channels/ChannelVideoItem.cs @@ -0,0 +1,17 @@ +using MediaBrowser.Controller.Entities; + +namespace MediaBrowser.Controller.Channels +{ + public class ChannelVideoItem : Video, IChannelItem + { + public string ExternalId { get; set; } + + public ChannelItemType ChannelItemType { get; set; } + + public bool IsInfiniteStream { get; set; } + + public ChannelMediaContentType ContentType { get; set; } + + public string OriginalImageUrl { get; set; } + } +} diff --git a/MediaBrowser.Controller/Channels/IChannel.cs b/MediaBrowser.Controller/Channels/IChannel.cs index ba1bd40832..956eb67e8a 100644 --- a/MediaBrowser.Controller/Channels/IChannel.cs +++ b/MediaBrowser.Controller/Channels/IChannel.cs @@ -26,13 +26,20 @@ namespace MediaBrowser.Controller.Channels ChannelCapabilities GetCapabilities(); /// <summary> + /// Determines whether [is enabled for] [the specified user]. + /// </summary> + /// <param name="user">The user.</param> + /// <returns><c>true</c> if [is enabled for] [the specified user]; otherwise, <c>false</c>.</returns> + bool IsEnabledFor(User user); + + /// <summary> /// Searches the specified search term. /// </summary> - /// <param name="searchTerm">The search term.</param> + /// <param name="searchInfo">The search information.</param> /// <param name="user">The user.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{IEnumerable{ChannelItemInfo}}.</returns> - Task<IEnumerable<ChannelItemInfo>> Search(string searchTerm, User user, CancellationToken cancellationToken); + Task<IEnumerable<ChannelItemInfo>> Search(ChannelSearchInfo searchInfo, User user, CancellationToken cancellationToken); /// <summary> /// Gets the channel items. @@ -56,4 +63,9 @@ namespace MediaBrowser.Controller.Channels { public bool CanSearch { get; set; } } + + public class ChannelSearchInfo + { + public string SearchTerm { get; set; } + } } diff --git a/MediaBrowser.Controller/Channels/IChannelItem.cs b/MediaBrowser.Controller/Channels/IChannelItem.cs new file mode 100644 index 0000000000..ffef532a9c --- /dev/null +++ b/MediaBrowser.Controller/Channels/IChannelItem.cs @@ -0,0 +1,17 @@ +using MediaBrowser.Controller.Entities; + +namespace MediaBrowser.Controller.Channels +{ + public interface IChannelItem : IHasImages + { + string ExternalId { get; set; } + + ChannelItemType ChannelItemType { get; set; } + + bool IsInfiniteStream { get; set; } + + ChannelMediaContentType ContentType { get; set; } + + string OriginalImageUrl { get; set; } + } +} diff --git a/MediaBrowser.Controller/Channels/IChannelManager.cs b/MediaBrowser.Controller/Channels/IChannelManager.cs index 561ab555bd..b34e77415f 100644 --- a/MediaBrowser.Controller/Channels/IChannelManager.cs +++ b/MediaBrowser.Controller/Channels/IChannelManager.cs @@ -1,12 +1,34 @@ -using System; +using MediaBrowser.Model.Channels; +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Querying; using System.Collections.Generic; -using System.Linq; -using System.Text; +using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Channels { public interface IChannelManager { + /// <summary> + /// Adds the parts. + /// </summary> + /// <param name="channels">The channels.</param> + void AddParts(IEnumerable<IChannel> channels); + + /// <summary> + /// Gets the channels. + /// </summary> + /// <param name="query">The query.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task{QueryResult{BaseItemDto}}.</returns> + Task<QueryResult<BaseItemDto>> GetChannels(ChannelQuery query, CancellationToken cancellationToken); + + /// <summary> + /// Gets the channel items. + /// </summary> + /// <param name="query">The query.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task{QueryResult{BaseItemDto}}.</returns> + Task<QueryResult<BaseItemDto>> GetChannelItems(ChannelItemQuery query, CancellationToken cancellationToken); } } |
