Ver Fonte

add more channel feature reporting

Luke Pulverenti há 11 anos atrás
pai
commit
ce8c5a1a3c

+ 1 - 2
MediaBrowser.Controller/Channels/IChannel.cs

@@ -1,6 +1,5 @@
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Channels;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Entities;
 using System.Collections.Generic;
 using System.Collections.Generic;
 using System.Threading;
 using System.Threading;
@@ -32,7 +31,7 @@ namespace MediaBrowser.Controller.Channels
         /// Gets the channel information.
         /// Gets the channel information.
         /// </summary>
         /// </summary>
         /// <returns>ChannelFeatures.</returns>
         /// <returns>ChannelFeatures.</returns>
-        ChannelFeatures GetChannelFeatures();
+        InternalChannelFeatures GetChannelFeatures();
 
 
         /// <summary>
         /// <summary>
         /// Determines whether [is enabled for] [the specified user].
         /// Determines whether [is enabled for] [the specified user].

+ 50 - 0
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>();
+        }
+    }
+}

+ 3 - 8
MediaBrowser.Controller/Channels/InternalChannelItemQuery.cs

@@ -1,4 +1,5 @@
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Channels;
 
 
 namespace MediaBrowser.Controller.Channels
 namespace MediaBrowser.Controller.Channels
 {
 {
@@ -11,15 +12,9 @@ namespace MediaBrowser.Controller.Channels
         public int? StartIndex { get; set; }
         public int? StartIndex { get; set; }
 
 
         public int? Limit { 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; }
     }
     }
-
 }
 }

+ 1 - 0
MediaBrowser.Controller/MediaBrowser.Controller.csproj

@@ -82,6 +82,7 @@
     <Compile Include="Channels\ChannelVideoItem.cs" />
     <Compile Include="Channels\ChannelVideoItem.cs" />
     <Compile Include="Channels\Channel.cs" />
     <Compile Include="Channels\Channel.cs" />
     <Compile Include="Channels\IChannelMediaItem.cs" />
     <Compile Include="Channels\IChannelMediaItem.cs" />
+    <Compile Include="Channels\InternalChannelFeatures.cs" />
     <Compile Include="Channels\InternalChannelItemQuery.cs" />
     <Compile Include="Channels\InternalChannelItemQuery.cs" />
     <Compile Include="Chapters\ChapterSearchRequest.cs" />
     <Compile Include="Chapters\ChapterSearchRequest.cs" />
     <Compile Include="Chapters\IChapterProvider.cs" />
     <Compile Include="Chapters\IChapterProvider.cs" />

+ 8 - 7
MediaBrowser.Model/Channels/ChannelFeatures.cs

@@ -39,10 +39,10 @@ namespace MediaBrowser.Model.Channels
         public bool SupportsSortOrderToggle { get; set; }
         public bool SupportsSortOrderToggle { get; set; }
 
 
         /// <summary>
         /// <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>
         /// </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()
         public ChannelFeatures()
         {
         {
@@ -57,9 +57,10 @@ namespace MediaBrowser.Model.Channels
     {
     {
         Name = 0,
         Name = 0,
         CommunityRating = 1,
         CommunityRating = 1,
-        ReleaseDate = 2,
-        Runtime = 3,
-        CommunityMostWatched = 4,
-        UserPlayCount = 5
+        ContentReleaseDate = 2,
+        DateAdded = 3,
+        Runtime = 4,
+        CommunityMostWatched = 5,
+        UserPlayCount = 6
     }
     }
 }
 }

+ 15 - 1
MediaBrowser.Server.Implementations/Channels/ChannelManager.cs

@@ -243,7 +243,21 @@ namespace MediaBrowser.Server.Implementations.Channels
 
 
             var channelProvider = GetChannelProvider(channel);
             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)
         private Guid GetInternalChannelId(string name)

+ 3 - 1
MediaBrowser.Server.Implementations/Localization/Server/server.json

@@ -787,5 +787,7 @@
 	"HeaderMetadataManager": "Metadata Manager",
 	"HeaderMetadataManager": "Metadata Manager",
 	"HeaderPreferences": "Preferences",
 	"HeaderPreferences": "Preferences",
 	"MessageLoadingChannels": "Loading channel content...",
 	"MessageLoadingChannels": "Loading channel content...",
-	"ButtonMarkRead": "Mark Read"
+	"ButtonMarkRead": "Mark Read",
+	"OptionDefaultSort": "Default",
+	"OptionCommunityMostWatchedSort": "Most Watched"
 }
 }

+ 2 - 2
Nuget/MediaBrowser.Common.Internal.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Common.Internal</id>
         <id>MediaBrowser.Common.Internal</id>
-        <version>3.0.382</version>
+        <version>3.0.384</version>
         <title>MediaBrowser.Common.Internal</title>
         <title>MediaBrowser.Common.Internal</title>
         <authors>Luke</authors>
         <authors>Luke</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <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>
         <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>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
         <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="NLog" version="2.1.0" />
             <dependency id="SimpleInjector" version="2.5.0" />
             <dependency id="SimpleInjector" version="2.5.0" />
             <dependency id="sharpcompress" version="0.10.2" />
             <dependency id="sharpcompress" version="0.10.2" />

+ 1 - 1
Nuget/MediaBrowser.Common.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Common</id>
         <id>MediaBrowser.Common</id>
-        <version>3.0.382</version>
+        <version>3.0.384</version>
         <title>MediaBrowser.Common</title>
         <title>MediaBrowser.Common</title>
         <authors>Media Browser Team</authors>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>

+ 2 - 2
Nuget/MediaBrowser.Server.Core.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
     <metadata>
     <metadata>
         <id>MediaBrowser.Server.Core</id>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.382</version>
+        <version>3.0.384</version>
         <title>Media Browser.Server.Core</title>
         <title>Media Browser.Server.Core</title>
         <authors>Media Browser Team</authors>
         <authors>Media Browser Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <description>Contains core components required to build plugins for Media Browser Server.</description>
         <copyright>Copyright © Media Browser 2013</copyright>
         <copyright>Copyright © Media Browser 2013</copyright>
         <dependencies>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.382" />
+            <dependency id="MediaBrowser.Common" version="3.0.384" />
         </dependencies>
         </dependencies>
     </metadata>
     </metadata>
     <files>
     <files>