diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Playlists/ManualPlaylistsFolder.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Playlists/ManualPlaylistsFolder.cs | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Playlists/ManualPlaylistsFolder.cs b/MediaBrowser.Server.Implementations/Playlists/ManualPlaylistsFolder.cs new file mode 100644 index 000000000..a87edde7b --- /dev/null +++ b/MediaBrowser.Server.Implementations/Playlists/ManualPlaylistsFolder.cs @@ -0,0 +1,71 @@ +using System.Collections.Generic; +using MediaBrowser.Common.Configuration; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Playlists; +using System.IO; +using System.Linq; + +namespace MediaBrowser.Server.Implementations.Playlists +{ + public class PlaylistsFolder : BasePluginFolder + { + public PlaylistsFolder() + { + Name = "Playlists"; + } + + public override bool IsVisible(User user) + { + return base.IsVisible(user) && GetRecursiveChildren(user, false) + .OfType<Playlist>() + .Any(i => string.Equals(i.OwnerUserId, user.Id.ToString("N"))); + } + + protected override IEnumerable<BaseItem> GetEligibleChildrenForRecursiveChildren(User user) + { + return RecursiveChildren + .OfType<Playlist>(); + } + + public override bool IsHidden + { + get + { + return true; + } + } + + public override bool IsHiddenFromUser(User user) + { + return false; + } + + public override string CollectionType + { + get { return Model.Entities.CollectionType.Playlists; } + } + } + + public class PlaylistssDynamicFolder : IVirtualFolderCreator + { + private readonly IApplicationPaths _appPaths; + + public PlaylistssDynamicFolder(IApplicationPaths appPaths) + { + _appPaths = appPaths; + } + + public BasePluginFolder GetFolder() + { + var path = Path.Combine(_appPaths.CachePath, "playlists"); + + Directory.CreateDirectory(path); + + return new PlaylistsFolder + { + Path = path + }; + } + } +} + |
