aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Channels/IChannel.cs3
-rw-r--r--MediaBrowser.Controller/Channels/InternalChannelFeatures.cs50
-rw-r--r--MediaBrowser.Controller/Channels/InternalChannelItemQuery.cs11
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Model/Channels/ChannelFeatures.cs15
-rw-r--r--MediaBrowser.Server.Implementations/Channels/ChannelManager.cs16
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/server.json4
-rw-r--r--Nuget/MediaBrowser.Common.Internal.nuspec4
-rw-r--r--Nuget/MediaBrowser.Common.nuspec2
-rw-r--r--Nuget/MediaBrowser.Server.Core.nuspec4
10 files changed, 86 insertions, 24 deletions
diff --git a/MediaBrowser.Controller/Channels/IChannel.cs b/MediaBrowser.Controller/Channels/IChannel.cs
index 799df9182..27334e4b9 100644
--- a/MediaBrowser.Controller/Channels/IChannel.cs
+++ b/MediaBrowser.Controller/Channels/IChannel.cs
@@ -1,6 +1,5 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Channels;
using MediaBrowser.Model.Entities;
using System.Collections.Generic;
using System.Threading;
@@ -32,7 +31,7 @@ namespace MediaBrowser.Controller.Channels
/// Gets the channel information.
/// </summary>
/// <returns>ChannelFeatures.</returns>
- ChannelFeatures GetChannelFeatures();
+ InternalChannelFeatures GetChannelFeatures();
/// <summary>
/// Determines whether [is enabled for] [the specified user].
diff --git a/MediaBrowser.Controller/Channels/InternalChannelFeatures.cs b/MediaBrowser.Controller/Channels/InternalChannelFeatures.cs
new file mode 100644
index 000000000..57a1a5129
--- /dev/null
+++ b/MediaBrowser.Controller/Channels/InternalChannelFeatures.cs
@@ -0,0 +1,50 @@
+using MediaBrowser.Model.Channels;
+using System.Collections.Generic;
+
+namespace MediaBrowser.Controller.Channels
+{
+ public class InternalChannelFeatures
+ {
+ /// <summary>
+ /// Gets or sets a value indicating whether this instance can search.
+ /// </summary>
+ /// <value><c>true</c> if this instance can search; otherwise, <c>false</c>.</value>
+ public bool CanSearch { get; set; }
+
+ /// <summary>
+ /// Gets or sets the media types.
+ /// </summary>
+ /// <value>The media types.</value>
+ public List<ChannelMediaType> MediaTypes { get; set; }
+
+ /// <summary>
+ /// Gets or sets the content types.
+ /// </summary>
+ /// <value>The content types.</value>
+ public List<ChannelMediaContentType> ContentTypes { get; set; }
+
+ /// <summary>
+ /// Represents the maximum number of records the channel allows retrieving at a time
+ /// </summary>
+ public int? MaxPageSize { get; set; }
+
+ /// <summary>
+ /// Gets or sets the default sort orders.
+ /// </summary>
+ /// <value>The default sort orders.</value>
+ public List<ChannelItemSortField> DefaultSortFields { get; set; }
+
+ /// <summary>
+ /// Indicates if a sort ascending/descending toggle is supported or not.
+ /// </summary>
+ public bool SupportsSortOrderToggle { get; set; }
+
+ public InternalChannelFeatures()
+ {
+ MediaTypes = new List<ChannelMediaType>();
+ ContentTypes = new List<ChannelMediaContentType>();
+
+ DefaultSortFields = new List<ChannelItemSortField>();
+ }
+ }
+}
diff --git a/MediaBrowser.Controller/Channels/InternalChannelItemQuery.cs b/MediaBrowser.Controller/Channels/InternalChannelItemQuery.cs
index 4f032fe91..1b05e60b6 100644
--- a/MediaBrowser.Controller/Channels/InternalChannelItemQuery.cs
+++ b/MediaBrowser.Controller/Channels/InternalChannelItemQuery.cs
@@ -1,4 +1,5 @@
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Channels;
namespace MediaBrowser.Controller.Channels
{
@@ -11,15 +12,9 @@ namespace MediaBrowser.Controller.Channels
public int? StartIndex { get; set; }
public int? Limit { get; set; }
- }
- public class InternalAllChannelItemsQuery
- {
- public User User { get; set; }
+ public ChannelItemSortField? SortBy { get; set; }
- public int? StartIndex { get; set; }
-
- public int? Limit { get; set; }
+ public bool SortDescending { get; set; }
}
-
} \ No newline at end of file
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index a198f1091..435eb9c0c 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -82,6 +82,7 @@
<Compile Include="Channels\ChannelVideoItem.cs" />
<Compile Include="Channels\Channel.cs" />
<Compile Include="Channels\IChannelMediaItem.cs" />
+ <Compile Include="Channels\InternalChannelFeatures.cs" />
<Compile Include="Channels\InternalChannelItemQuery.cs" />
<Compile Include="Chapters\ChapterSearchRequest.cs" />
<Compile Include="Chapters\IChapterProvider.cs" />
diff --git a/MediaBrowser.Model/Channels/ChannelFeatures.cs b/MediaBrowser.Model/Channels/ChannelFeatures.cs
index d3af8dadf..cec40d7f2 100644
--- a/MediaBrowser.Model/Channels/ChannelFeatures.cs
+++ b/MediaBrowser.Model/Channels/ChannelFeatures.cs
@@ -39,10 +39,10 @@ namespace MediaBrowser.Model.Channels
public bool SupportsSortOrderToggle { get; set; }
/// <summary>
- /// Gets or sets a value indicating whether the channel content is just a single media list.
+ /// Gets or sets a value indicating whether this instance can filter.
/// </summary>
- /// <value><c>true</c> if this instance is single media list; otherwise, <c>false</c>.</value>
- public bool IsSingleMediaList { get; set; }
+ /// <value><c>true</c> if this instance can filter; otherwise, <c>false</c>.</value>
+ public bool CanFilter { get; set; }
public ChannelFeatures()
{
@@ -57,9 +57,10 @@ namespace MediaBrowser.Model.Channels
{
Name = 0,
CommunityRating = 1,
- ReleaseDate = 2,
- Runtime = 3,
- CommunityMostWatched = 4,
- UserPlayCount = 5
+ ContentReleaseDate = 2,
+ DateAdded = 3,
+ Runtime = 4,
+ CommunityMostWatched = 5,
+ UserPlayCount = 6
}
}
diff --git a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
index 572db8332..acfc5228e 100644
--- a/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
+++ b/MediaBrowser.Server.Implementations/Channels/ChannelManager.cs
@@ -243,7 +243,21 @@ namespace MediaBrowser.Server.Implementations.Channels
var channelProvider = GetChannelProvider(channel);
- return channelProvider.GetChannelFeatures();
+ return GetChannelFeaturesDto(channelProvider.GetChannelFeatures());
+ }
+
+ public ChannelFeatures GetChannelFeaturesDto(InternalChannelFeatures features)
+ {
+ return new ChannelFeatures
+ {
+ CanFilter = !features.MaxPageSize.HasValue,
+ CanSearch = features.CanSearch,
+ ContentTypes = features.ContentTypes,
+ DefaultSortFields = features.DefaultSortFields,
+ MaxPageSize = features.MaxPageSize,
+ MediaTypes = features.MediaTypes,
+ SupportsSortOrderToggle = features.SupportsSortOrderToggle
+ };
}
private Guid GetInternalChannelId(string name)
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json
index 700b2a692..6a0155ea3 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/server.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json
@@ -787,5 +787,7 @@
"HeaderMetadataManager": "Metadata Manager",
"HeaderPreferences": "Preferences",
"MessageLoadingChannels": "Loading channel content...",
- "ButtonMarkRead": "Mark Read"
+ "ButtonMarkRead": "Mark Read",
+ "OptionDefaultSort": "Default",
+ "OptionCommunityMostWatchedSort": "Most Watched"
} \ No newline at end of file
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index faa86f775..e401d699d 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common.Internal</id>
- <version>3.0.382</version>
+ <version>3.0.384</version>
<title>MediaBrowser.Common.Internal</title>
<authors>Luke</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.382" />
+ <dependency id="MediaBrowser.Common" version="3.0.384" />
<dependency id="NLog" version="2.1.0" />
<dependency id="SimpleInjector" version="2.5.0" />
<dependency id="sharpcompress" version="0.10.2" />
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index cb59c7afa..4ea543d85 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common</id>
- <version>3.0.382</version>
+ <version>3.0.384</version>
<title>MediaBrowser.Common</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index bfb9a547a..60ed34067 100644
--- a/Nuget/MediaBrowser.Server.Core.nuspec
+++ b/Nuget/MediaBrowser.Server.Core.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Server.Core</id>
- <version>3.0.382</version>
+ <version>3.0.384</version>
<title>Media Browser.Server.Core</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains core components required to build plugins for Media Browser Server.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.382" />
+ <dependency id="MediaBrowser.Common" version="3.0.384" />
</dependencies>
</metadata>
<files>