diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-07-29 23:31:35 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-07-29 23:31:35 -0400 |
| commit | 51e964dae394ae4a211482d562dbc28e79c00c3c (patch) | |
| tree | 8cc6f351eeb9ceb2343cd818e84b26a94f072a62 /MediaBrowser.Server.Implementations/Library/UserViewManager.cs | |
| parent | 063675bb07f78f99738a3ada061f3e2c16c9cda0 (diff) | |
support channels with dlna
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/UserViewManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/UserViewManager.cs | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/UserViewManager.cs b/MediaBrowser.Server.Implementations/Library/UserViewManager.cs index 73afa22e3..b8cb955fc 100644 --- a/MediaBrowser.Server.Implementations/Library/UserViewManager.cs +++ b/MediaBrowser.Server.Implementations/Library/UserViewManager.cs @@ -1,4 +1,7 @@ -using MediaBrowser.Common.IO; +using System.IO; +using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.IO; +using MediaBrowser.Controller; using MediaBrowser.Controller.Channels; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; @@ -16,6 +19,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Server.Implementations.Configuration; namespace MediaBrowser.Server.Implementations.Library { @@ -28,8 +32,9 @@ namespace MediaBrowser.Server.Implementations.Library private readonly IChannelManager _channelManager; private readonly ILiveTvManager _liveTvManager; + private readonly IServerApplicationPaths _appPaths; - public UserViewManager(ILibraryManager libraryManager, ILocalizationManager localizationManager, IFileSystem fileSystem, IUserManager userManager, IChannelManager channelManager, ILiveTvManager liveTvManager) + public UserViewManager(ILibraryManager libraryManager, ILocalizationManager localizationManager, IFileSystem fileSystem, IUserManager userManager, IChannelManager channelManager, ILiveTvManager liveTvManager, IServerApplicationPaths appPaths) { _libraryManager = libraryManager; _localizationManager = localizationManager; @@ -37,6 +42,7 @@ namespace MediaBrowser.Server.Implementations.Library _userManager = userManager; _channelManager = channelManager; _liveTvManager = liveTvManager; + _appPaths = appPaths; } public async Task<IEnumerable<Folder>> GetUserViews(UserViewQuery query, CancellationToken cancellationToken) @@ -124,5 +130,37 @@ namespace MediaBrowser.Server.Implementations.Library return _libraryManager.GetNamedView(name, type, sortName, cancellationToken); } + + public async Task<SpecialFolder> GetSpecialFolder(string name, SpecialFolderType type, string itemType, CancellationToken cancellationToken) + { + var path = Path.Combine(_appPaths.ItemsByNamePath, + "specialfolders", + _fileSystem.GetValidFilename(name)); + + var id = (path + "_specialfolder_" + name).GetMBId(typeof(SpecialFolder)); + + var item = _libraryManager.GetItemById(id) as SpecialFolder; + + if (item == null) + { + Directory.CreateDirectory(Path.GetDirectoryName(path)); + + item = new SpecialFolder + { + Path = path, + Id = id, + DateCreated = DateTime.UtcNow, + Name = name, + SpecialFolderType = type, + ItemTypeName = itemType + }; + + await _libraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false); + + await item.RefreshMetadata(cancellationToken).ConfigureAwait(false); + } + + return item; + } } } |
