aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Channels/IChannel.cs6
-rw-r--r--MediaBrowser.Controller/Channels/IChannelManager.cs19
-rw-r--r--MediaBrowser.Controller/Entities/User.cs7
-rw-r--r--MediaBrowser.Controller/Entities/UserRootFolder.cs93
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs10
-rw-r--r--MediaBrowser.Controller/Library/IUserViewManager.cs13
-rw-r--r--MediaBrowser.Controller/LiveTv/ILiveTvManager.cs17
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
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" />