2
0
Эх сурвалжийг харах

account for unaired physical episodes

Luke Pulverenti 11 жил өмнө
parent
commit
e7a1f52373

+ 32 - 1
MediaBrowser.Api/UserLibrary/ItemsService.cs

@@ -193,6 +193,9 @@ namespace MediaBrowser.Api.UserLibrary
 
 
         [ApiMember(Name = "IsUnaired", Description = "Optional filter by items that are unaired episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
         [ApiMember(Name = "IsUnaired", Description = "Optional filter by items that are unaired episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
         public bool? IsUnaired { get; set; }
         public bool? IsUnaired { get; set; }
+
+        [ApiMember(Name = "IsVirtualUnaired", Description = "Optional filter by items that are virtual unaired episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
+        public bool? IsVirtualUnaired { get; set; }
     }
     }
 
 
     /// <summary>
     /// <summary>
@@ -470,6 +473,20 @@ namespace MediaBrowser.Api.UserLibrary
                 });
                 });
             }
             }
 
 
+            if (request.IsVirtualUnaired.HasValue)
+            {
+                var val = request.IsVirtualUnaired.Value;
+                items = items.Where(i =>
+                {
+                    var e = i as Episode;
+                    if (e != null)
+                    {
+                        return e.IsVirtualUnaired == val;
+                    }
+                    return true;
+                });
+            }
+
             return items;
             return items;
         }
         }
 
 
@@ -487,7 +504,7 @@ namespace MediaBrowser.Api.UserLibrary
                         var e = i as Season;
                         var e = i as Season;
                         if (e != null)
                         if (e != null)
                         {
                         {
-                            return !e.IsMissingOrUnaired;
+                            return !e.IsMissingOrVirtualUnaired;
                         }
                         }
                         return true;
                         return true;
                     });
                     });
@@ -522,6 +539,20 @@ namespace MediaBrowser.Api.UserLibrary
                 });
                 });
             }
             }
 
 
+            if (request.IsVirtualUnaired.HasValue)
+            {
+                var val = request.IsVirtualUnaired.Value;
+                items = items.Where(i =>
+                {
+                    var e = i as Season;
+                    if (e != null)
+                    {
+                        return e.IsVirtualUnaired == val;
+                    }
+                    return true;
+                });
+            }
+
             return items;
             return items;
         }
         }
 
 

+ 6 - 1
MediaBrowser.Controller/Entities/TV/Episode.cs

@@ -203,7 +203,12 @@ namespace MediaBrowser.Controller.Entities.TV
 
 
         public bool IsUnaired
         public bool IsUnaired
         {
         {
-            get { return LocationType == Model.Entities.LocationType.Virtual && PremiereDate.HasValue && PremiereDate.Value >= DateTime.UtcNow; }
+            get { return PremiereDate.HasValue && PremiereDate.Value >= DateTime.UtcNow; }
+        }
+
+        public bool IsVirtualUnaired
+        {
+            get { return LocationType == Model.Entities.LocationType.Virtual && IsUnaired; }
         }
         }
     }
     }
 }
 }

+ 8 - 3
MediaBrowser.Controller/Entities/TV/Season.cs

@@ -156,12 +156,17 @@ namespace MediaBrowser.Controller.Entities.TV
 
 
         public bool IsUnaired
         public bool IsUnaired
         {
         {
-            get { return LocationType == Model.Entities.LocationType.Virtual && Children.OfType<Episode>().All(i => i.IsUnaired); }
+            get { return Children.OfType<Episode>().All(i => i.IsUnaired); }
         }
         }
 
 
-        public bool IsMissingOrUnaired
+        public bool IsVirtualUnaired
         {
         {
-            get { return LocationType == Model.Entities.LocationType.Virtual && Children.OfType<Episode>().All(i => i.IsUnaired || i.IsMissingEpisode); }
+            get { return LocationType == Model.Entities.LocationType.Virtual && IsUnaired; }
+        }
+
+        public bool IsMissingOrVirtualUnaired
+        {
+            get { return LocationType == Model.Entities.LocationType.Virtual && Children.OfType<Episode>().All(i => i.IsVirtualUnaired || i.IsMissingEpisode); }
         }
         }
     }
     }
 }
 }

+ 2 - 0
MediaBrowser.Model/Querying/ItemQuery.cs

@@ -254,6 +254,8 @@ namespace MediaBrowser.Model.Querying
         /// <value><c>null</c> if [is unaired episode] contains no value, <c>true</c> if [is unaired episode]; otherwise, <c>false</c>.</value>
         /// <value><c>null</c> if [is unaired episode] contains no value, <c>true</c> if [is unaired episode]; otherwise, <c>false</c>.</value>
         public bool? IsUnaired { get; set; }
         public bool? IsUnaired { get; set; }
 
 
+        public bool? IsVirtualUnaired { get; set; }
+        
         /// <summary>
         /// <summary>
         /// Gets or sets the exclude location types.
         /// Gets or sets the exclude location types.
         /// </summary>
         /// </summary>

+ 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.233</version>
+        <version>3.0.234</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.233" />
+            <dependency id="MediaBrowser.Common" version="3.0.234" />
             <dependency id="NLog" version="2.1.0" />
             <dependency id="NLog" version="2.1.0" />
             <dependency id="ServiceStack.Text" version="3.9.58" />
             <dependency id="ServiceStack.Text" version="3.9.58" />
             <dependency id="SimpleInjector" version="2.3.2" />
             <dependency id="SimpleInjector" version="2.3.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.233</version>
+        <version>3.0.234</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.233</version>
+        <version>3.0.234</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.233" />
+            <dependency id="MediaBrowser.Common" version="3.0.234" />
         </dependencies>
         </dependencies>
     </metadata>
     </metadata>
     <files>
     <files>