diff options
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> |
