ChannelFolderItem.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Model.Channels;
  3. using MediaBrowser.Model.Querying;
  4. using MediaBrowser.Model.Users;
  5. using System;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. namespace MediaBrowser.Controller.Channels
  9. {
  10. public class ChannelFolderItem : Folder, IChannelItem
  11. {
  12. public string ExternalId { get; set; }
  13. public string DataVersion { get; set; }
  14. public ChannelItemType ChannelItemType { get; set; }
  15. public ChannelFolderType ChannelFolderType { get; set; }
  16. public string OriginalImageUrl { get; set; }
  17. protected override bool GetBlockUnratedValue(UserPolicy config)
  18. {
  19. // Don't block.
  20. return false;
  21. }
  22. public override bool SupportsLocalMetadata
  23. {
  24. get
  25. {
  26. return false;
  27. }
  28. }
  29. public override bool IsSaveLocalMetadataEnabled()
  30. {
  31. return false;
  32. }
  33. protected override string CreateUserDataKey()
  34. {
  35. return ExternalId;
  36. }
  37. public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
  38. {
  39. try
  40. {
  41. // Don't blow up here because it could cause parent screens with other content to fail
  42. return await ChannelManager.GetChannelItemsInternal(new ChannelItemQuery
  43. {
  44. ChannelId = ChannelId,
  45. FolderId = Id.ToString("N"),
  46. Limit = query.Limit,
  47. StartIndex = query.StartIndex,
  48. UserId = query.User.Id.ToString("N"),
  49. SortBy = query.SortBy,
  50. SortOrder = query.SortOrder
  51. }, new Progress<double>(), CancellationToken.None);
  52. }
  53. catch
  54. {
  55. // Already logged at lower levels
  56. return new QueryResult<BaseItem>
  57. {
  58. };
  59. }
  60. }
  61. protected override string GetInternalMetadataPath(string basePath)
  62. {
  63. return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N"));
  64. }
  65. public override bool CanDelete()
  66. {
  67. return false;
  68. }
  69. public override bool IsVisibleStandalone(User user)
  70. {
  71. return IsVisibleStandaloneInternal(user, false) && ChannelVideoItem.IsChannelVisible(this, user);
  72. }
  73. }
  74. }