ChannelFolderItem.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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 ChannelId { get; set; }
  14. public string DataVersion { get; set; }
  15. public ChannelItemType ChannelItemType { get; set; }
  16. public ChannelFolderType ChannelFolderType { get; set; }
  17. public string OriginalImageUrl { get; set; }
  18. protected override bool GetBlockUnratedValue(UserPolicy config)
  19. {
  20. // Don't block.
  21. return false;
  22. }
  23. public override bool SupportsLocalMetadata
  24. {
  25. get
  26. {
  27. return false;
  28. }
  29. }
  30. public override bool IsSaveLocalMetadataEnabled()
  31. {
  32. return false;
  33. }
  34. protected override string CreateUserDataKey()
  35. {
  36. return ExternalId;
  37. }
  38. public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
  39. {
  40. try
  41. {
  42. // Don't blow up here because it could cause parent screens with other content to fail
  43. return await ChannelManager.GetChannelItemsInternal(new ChannelItemQuery
  44. {
  45. ChannelId = ChannelId,
  46. FolderId = Id.ToString("N"),
  47. Limit = query.Limit,
  48. StartIndex = query.StartIndex,
  49. UserId = query.User.Id.ToString("N"),
  50. SortBy = query.SortBy,
  51. SortOrder = query.SortOrder
  52. }, new Progress<double>(), CancellationToken.None);
  53. }
  54. catch
  55. {
  56. // Already logged at lower levels
  57. return new QueryResult<BaseItem>
  58. {
  59. };
  60. }
  61. }
  62. protected override string GetInternalMetadataPath(string basePath)
  63. {
  64. return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N"));
  65. }
  66. public override bool CanDelete()
  67. {
  68. return false;
  69. }
  70. }
  71. }