Channel.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using MediaBrowser.Controller.Entities;
  2. using MediaBrowser.Model.Channels;
  3. using MediaBrowser.Model.Querying;
  4. using System;
  5. using System.Linq;
  6. using System.Threading;
  7. using System.Threading.Tasks;
  8. using MediaBrowser.Model.Users;
  9. namespace MediaBrowser.Controller.Channels
  10. {
  11. public class Channel : Folder
  12. {
  13. public string OriginalChannelName { get; set; }
  14. public override bool IsVisible(User user)
  15. {
  16. if (user.Policy.BlockedChannels != null)
  17. {
  18. if (user.Policy.BlockedChannels.Contains(Id.ToString("N"), StringComparer.OrdinalIgnoreCase))
  19. {
  20. return false;
  21. }
  22. }
  23. else
  24. {
  25. if (!user.Policy.EnableAllChannels && !user.Policy.EnabledChannels.Contains(Id.ToString("N"), StringComparer.OrdinalIgnoreCase))
  26. {
  27. return false;
  28. }
  29. }
  30. return base.IsVisible(user);
  31. }
  32. public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
  33. {
  34. try
  35. {
  36. // Don't blow up here because it could cause parent screens with other content to fail
  37. return await ChannelManager.GetChannelItemsInternal(new ChannelItemQuery
  38. {
  39. ChannelId = Id.ToString("N"),
  40. Limit = query.Limit,
  41. StartIndex = query.StartIndex,
  42. UserId = query.User.Id.ToString("N"),
  43. SortBy = query.SortBy,
  44. SortOrder = query.SortOrder
  45. }, new Progress<double>(), CancellationToken.None);
  46. }
  47. catch
  48. {
  49. // Already logged at lower levels
  50. return new QueryResult<BaseItem>
  51. {
  52. };
  53. }
  54. }
  55. protected override string GetInternalMetadataPath(string basePath)
  56. {
  57. return GetInternalMetadataPath(basePath, Id);
  58. }
  59. public static string GetInternalMetadataPath(string basePath, Guid id)
  60. {
  61. return System.IO.Path.Combine(basePath, "channels", id.ToString("N"), "metadata");
  62. }
  63. public override bool CanDelete()
  64. {
  65. return false;
  66. }
  67. protected override bool IsAllowTagFilterEnforced()
  68. {
  69. return false;
  70. }
  71. }
  72. }