diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-03-19 15:32:37 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2016-03-19 15:32:37 -0400 |
| commit | db1bf5b1b55c8012e9ca3393fd59b9469ee5aeaf (patch) | |
| tree | 61dd1b04e176e9d83b931de063796cbf03756f7a /MediaBrowser.Controller/Channels/ChannelFolderItem.cs | |
| parent | 1d2b6329bf3d395c57ac45a0f56b2e15bbee4c22 (diff) | |
audio podcast
Diffstat (limited to 'MediaBrowser.Controller/Channels/ChannelFolderItem.cs')
| -rw-r--r-- | MediaBrowser.Controller/Channels/ChannelFolderItem.cs | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/Channels/ChannelFolderItem.cs b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs new file mode 100644 index 000000000..174cd282a --- /dev/null +++ b/MediaBrowser.Controller/Channels/ChannelFolderItem.cs @@ -0,0 +1,90 @@ +using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Channels; +using MediaBrowser.Model.Querying; +using MediaBrowser.Model.Users; +using System; +using System.Runtime.Serialization; +using System.Threading; +using System.Threading.Tasks; +using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Entities; + +namespace MediaBrowser.Controller.Channels +{ + public class ChannelFolderItem : Folder + { + public ChannelFolderType ChannelFolderType { get; set; } + + protected override bool GetBlockUnratedValue(UserPolicy config) + { + // Don't block. + return false; + } + + public override UnratedItem GetBlockUnratedType() + { + return UnratedItem.ChannelContent; + } + + [IgnoreDataMember] + public override bool SupportsLocalMetadata + { + get + { + return false; + } + } + + public override bool IsSaveLocalMetadataEnabled() + { + return false; + } + + protected override string CreateUserDataKey() + { + return ExternalId; + } + + public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query) + { + try + { + // Don't blow up here because it could cause parent screens with other content to fail + return await ChannelManager.GetChannelItemsInternal(new ChannelItemQuery + { + ChannelId = ChannelId, + FolderId = Id.ToString("N"), + Limit = query.Limit, + StartIndex = query.StartIndex, + UserId = query.User.Id.ToString("N"), + SortBy = query.SortBy, + SortOrder = query.SortOrder + + }, new Progress<double>(), CancellationToken.None); + } + catch + { + // Already logged at lower levels + return new QueryResult<BaseItem> + { + + }; + } + } + + protected override string GetInternalMetadataPath(string basePath) + { + return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N")); + } + + public override bool CanDelete() + { + return false; + } + + public override bool IsVisibleStandalone(User user) + { + return IsVisibleStandaloneInternal(user, false) && ChannelVideoItem.IsChannelVisible(this, user); + } + } +} |
