PlaylistsFolder.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma warning disable CS1591
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text.Json.Serialization;
  5. using Jellyfin.Data.Enums;
  6. using Jellyfin.Database.Implementations.Entities;
  7. using MediaBrowser.Common;
  8. using MediaBrowser.Controller.Entities;
  9. using MediaBrowser.Controller.Playlists;
  10. using MediaBrowser.Model.Querying;
  11. namespace Emby.Server.Implementations.Playlists
  12. {
  13. [RequiresSourceSerialisation]
  14. public class PlaylistsFolder : BasePluginFolder
  15. {
  16. public PlaylistsFolder()
  17. {
  18. Name = "Playlists";
  19. }
  20. [JsonIgnore]
  21. public override bool IsHidden => true;
  22. [JsonIgnore]
  23. public override bool SupportsInheritedParentImages => false;
  24. [JsonIgnore]
  25. public override CollectionType? CollectionType => Jellyfin.Data.Enums.CollectionType.playlists;
  26. protected override IEnumerable<BaseItem> GetEligibleChildrenForRecursiveChildren(User user)
  27. {
  28. return base.GetEligibleChildrenForRecursiveChildren(user).OfType<Playlist>();
  29. }
  30. protected override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
  31. {
  32. if (query.User is null)
  33. {
  34. query.Recursive = false;
  35. return base.GetItemsInternal(query);
  36. }
  37. query.Recursive = true;
  38. query.IncludeItemTypes = new[] { BaseItemKind.Playlist };
  39. return QueryWithPostFiltering2(query);
  40. }
  41. public override string GetClientTypeName()
  42. {
  43. return "ManualPlaylistsFolder";
  44. }
  45. }
  46. }