2
0

ChannelFolderItem.cs 2.5 KB

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