diff options
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Channels/IChannel.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Channels/IChannelManager.cs | 19 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/User.cs | 7 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/UserRootFolder.cs | 93 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/ILibraryManager.cs | 10 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IUserViewManager.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Controller/LiveTv/ILiveTvManager.cs | 17 | ||||
| -rw-r--r-- | MediaBrowser.Controller/MediaBrowser.Controller.csproj | 1 |
8 files changed, 67 insertions, 99 deletions
diff --git a/MediaBrowser.Controller/Channels/IChannel.cs b/MediaBrowser.Controller/Channels/IChannel.cs index cce341e438..dc1d9b00a3 100644 --- a/MediaBrowser.Controller/Channels/IChannel.cs +++ b/MediaBrowser.Controller/Channels/IChannel.cs @@ -15,6 +15,12 @@ namespace MediaBrowser.Controller.Channels string Name { get; } /// <summary> + /// Gets the description. + /// </summary> + /// <value>The description.</value> + string Description { get; } + + /// <summary> /// Gets the data version. /// </summary> /// <value>The data version.</value> diff --git a/MediaBrowser.Controller/Channels/IChannelManager.cs b/MediaBrowser.Controller/Channels/IChannelManager.cs index 180ac4a392..b6984d9ada 100644 --- a/MediaBrowser.Controller/Channels/IChannelManager.cs +++ b/MediaBrowser.Controller/Channels/IChannelManager.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Channels; +using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Channels; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Querying; using System.Collections.Generic; @@ -80,5 +81,21 @@ namespace MediaBrowser.Controller.Channels /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task{IEnumerable{MediaSourceInfo}}.</returns> Task<IEnumerable<MediaSourceInfo>> GetChannelItemMediaSources(string id, CancellationToken cancellationToken); + + /// <summary> + /// Gets the channel folder. + /// </summary> + /// <param name="userId">The user identifier.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>BaseItemDto.</returns> + Task<Folder> GetInternalChannelFolder(string userId, CancellationToken cancellationToken); + + /// <summary> + /// Gets the channel folder. + /// </summary> + /// <param name="userId">The user identifier.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>BaseItemDto.</returns> + Task<BaseItemDto> GetChannelFolder(string userId, CancellationToken cancellationToken); } } diff --git a/MediaBrowser.Controller/Entities/User.cs b/MediaBrowser.Controller/Entities/User.cs index a2803d2cec..18c5eb48c1 100644 --- a/MediaBrowser.Controller/Entities/User.cs +++ b/MediaBrowser.Controller/Entities/User.cs @@ -183,7 +183,7 @@ namespace MediaBrowser.Controller.Entities /// </summary> /// <value>The configuration directory path.</value> [IgnoreDataMember] - internal string ConfigurationDirectoryPath + public string ConfigurationDirectoryPath { get { @@ -247,10 +247,5 @@ namespace MediaBrowser.Controller.Entities Configuration = config; SaveConfiguration(); } - - public IEnumerable<Folder> GetViews() - { - return ((UserRootFolder)RootFolder).GetViews(this, CancellationToken.None).Result; - } } } diff --git a/MediaBrowser.Controller/Entities/UserRootFolder.cs b/MediaBrowser.Controller/Entities/UserRootFolder.cs index ec7c02cfa3..e5a8135c2d 100644 --- a/MediaBrowser.Controller/Entities/UserRootFolder.cs +++ b/MediaBrowser.Controller/Entities/UserRootFolder.cs @@ -1,12 +1,6 @@ -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.Entities.Audio; -using MediaBrowser.Controller.Entities.Movies; -using MediaBrowser.Controller.Entities.TV; -using MediaBrowser.Controller.Providers; -using MediaBrowser.Model.Entities; +using MediaBrowser.Controller.Providers; using System; using System.Collections.Generic; -using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -57,90 +51,5 @@ namespace MediaBrowser.Controller.Entities LibraryManager.RegisterItem(item); } } - - public async Task<IEnumerable<Folder>> GetViews(User user, CancellationToken cancellationToken) - { - var folders = user.RootFolder - .GetChildren(user, true) - .OfType<Folder>() - .ToList(); - - var list = new List<Folder>(); - - var excludeFolderIds = user.Configuration.ExcludeFoldersFromGrouping.Select(i => new Guid(i)).ToList(); - - var standaloneFolders = folders.Where(i => UserView.IsExcludedFromGrouping(i) || excludeFolderIds.Contains(i.Id)).ToList(); - - list.AddRange(standaloneFolders); - - var recursiveChildren = folders - .Except(standaloneFolders) - .SelectMany(i => i.GetRecursiveChildren(user, false)) - .ToList(); - - if (recursiveChildren.OfType<Series>().Any()) - { - list.Add(await GetUserView(CollectionType.TvShows, user, cancellationToken).ConfigureAwait(false)); - } - - if (recursiveChildren.OfType<MusicAlbum>().Any() || - recursiveChildren.OfType<MusicVideo>().Any()) - { - list.Add(await GetUserView(CollectionType.Music, user, cancellationToken).ConfigureAwait(false)); - } - - if (recursiveChildren.OfType<Movie>().Any()) - { - list.Add(await GetUserView(CollectionType.Movies, user, cancellationToken).ConfigureAwait(false)); - } - - if (recursiveChildren.OfType<Game>().Any()) - { - list.Add(await GetUserView(CollectionType.Games, user, cancellationToken).ConfigureAwait(false)); - } - - if (recursiveChildren.OfType<BoxSet>().Any()) - { - list.Add(await GetUserView(CollectionType.BoxSets, user, cancellationToken).ConfigureAwait(false)); - } - - return list.OrderBy(i => i.SortName); - } - - // Use this to force new entity creation, as needed - private const string DataVersion = "5"; - private async Task<UserView> GetUserView(string type, User user, CancellationToken cancellationToken) - { - var name = LocalizationManager.GetLocalizedString("ViewType" + type); - - var id = "view" + name + DataVersion + user.Id.ToString("N"); - var guid = id.GetMD5(); - - var item = LibraryManager.GetItemById(guid) as UserView; - - if (item == null) - { - var path = System.IO.Path.Combine(user.ConfigurationDirectoryPath, - "views", - FileSystem.GetValidFilename(name)); - - Directory.CreateDirectory(System.IO.Path.GetDirectoryName(path)); - - item = new UserView - { - Path = path, - Id = guid, - DateCreated = DateTime.UtcNow, - Name = name, - ViewType = type - }; - - await LibraryManager.CreateItem(item, cancellationToken).ConfigureAwait(false); - - await item.RefreshMetadata(cancellationToken).ConfigureAwait(false); - } - - return item; - } } } diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index 69dea5e745..e6f50635b3 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -332,5 +332,15 @@ namespace MediaBrowser.Controller.Library /// <param name="items">The items.</param> /// <returns>IEnumerable{BaseItem}.</returns> IEnumerable<BaseItem> ReplaceVideosWithPrimaryVersions(IEnumerable<BaseItem> items); + + /// <summary> + /// Gets the named folder. + /// </summary> + /// <param name="name">The name.</param> + /// <param name="type">The type.</param> + /// <param name="sortName">Name of the sort.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task{Folder}.</returns> + Task<UserView> GetNamedView(string name, string type, string sortName, CancellationToken cancellationToken); } }
\ No newline at end of file diff --git a/MediaBrowser.Controller/Library/IUserViewManager.cs b/MediaBrowser.Controller/Library/IUserViewManager.cs new file mode 100644 index 0000000000..7c352d97a7 --- /dev/null +++ b/MediaBrowser.Controller/Library/IUserViewManager.cs @@ -0,0 +1,13 @@ +using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Library; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace MediaBrowser.Controller.Library +{ + public interface IUserViewManager + { + Task<IEnumerable<Folder>> GetUserViews(UserViewQuery query, CancellationToken cancellationToken); + } +} diff --git a/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs b/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs index 6899b7a59a..8e66a1be91 100644 --- a/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs +++ b/MediaBrowser.Controller/LiveTv/ILiveTvManager.cs @@ -1,4 +1,5 @@ using MediaBrowser.Controller.Entities; +using MediaBrowser.Model.Dto; using MediaBrowser.Model.LiveTv; using MediaBrowser.Model.Querying; using System.Collections.Generic; @@ -257,5 +258,21 @@ namespace MediaBrowser.Controller.LiveTv /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> Task ResetTuner(string id, CancellationToken cancellationToken); + + /// <summary> + /// Gets the live tv folder. + /// </summary> + /// <param name="userId">The user identifier.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>BaseItemDto.</returns> + Task<Folder> GetInternalLiveTvFolder(string userId, CancellationToken cancellationToken); + + /// <summary> + /// Gets the live tv folder. + /// </summary> + /// <param name="userId">The user identifier.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>BaseItemDto.</returns> + Task<BaseItemDto> GetLiveTvFolder(string userId, CancellationToken cancellationToken); } } diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 5d8d62eb9c..09bf4b470d 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -160,6 +160,7 @@ <Compile Include="Library\IntroInfo.cs" /> <Compile Include="Library\ItemUpdateType.cs" /> <Compile Include="Library\IUserDataManager.cs" /> + <Compile Include="Library\IUserViewManager.cs" /> <Compile Include="Library\LibraryManagerExtensions.cs" /> <Compile Include="Library\PlaybackStopEventArgs.cs" /> <Compile Include="Library\UserDataSaveEventArgs.cs" /> |
