Browse Source

rework episode queries

Luke Pulverenti 7 năm trước cách đây
mục cha
commit
6b28eee2db

+ 3 - 3
Emby.Dlna/ContentDirectory/ControlHandler.cs

@@ -536,8 +536,8 @@ namespace Emby.Dlna.ContentDirectory
                 Limit = limit,
                 StartIndex = startIndex,
                 User = user,
-                IsMissing = false,
-                PresetViews = new[] { CollectionType.Movies, CollectionType.TvShows },
+                IsVirtualItem = false,
+                PresetViews = new string[] { },
                 ExcludeItemTypes = new[] { typeof(Game).Name, typeof(Book).Name },
                 IsPlaceHolder = false,
                 DtoOptions = GetDtoOptions()
@@ -1129,7 +1129,7 @@ namespace Emby.Dlna.ContentDirectory
                 Limit = 50,
                 IncludeItemTypes = new[] { typeof(Episode).Name },
                 ParentId = parent == null ? null : parent.Id.ToString("N"),
-                GroupItems = true
+                GroupItems = false
 
             }, query.DtoOptions).Select(i => i.Item1 ?? i.Item2.FirstOrDefault()).Where(i => i != null).ToList();
 

+ 3 - 24
Emby.Server.Implementations/Data/SqliteItemRepository.cs

@@ -4275,12 +4275,13 @@ namespace Emby.Server.Implementations.Data
                 whereClauses.Add("ProductionYear in (" + val + ")");
             }
 
-            if (query.IsVirtualItem.HasValue)
+            var isVirtualItem = query.IsVirtualItem ?? query.IsMissing;
+            if (isVirtualItem.HasValue)
             {
                 whereClauses.Add("IsVirtualItem=@IsVirtualItem");
                 if (statement != null)
                 {
-                    statement.TryBind("@IsVirtualItem", query.IsVirtualItem.Value);
+                    statement.TryBind("@IsVirtualItem", isVirtualItem.Value);
                 }
             }
             if (query.IsSpecialSeason.HasValue)
@@ -4305,28 +4306,6 @@ namespace Emby.Server.Implementations.Data
                     whereClauses.Add("PremiereDate < DATETIME('now')");
                 }
             }
-            if (query.IsMissing.HasValue)
-            {
-                if (query.IsMissing.Value)
-                {
-                    whereClauses.Add("(IsVirtualItem=1 AND PremiereDate < DATETIME('now'))");
-                }
-                else
-                {
-                    whereClauses.Add("(IsVirtualItem=0 OR PremiereDate >= DATETIME('now'))");
-                }
-            }
-            if (query.IsVirtualUnaired.HasValue)
-            {
-                if (query.IsVirtualUnaired.Value)
-                {
-                    whereClauses.Add("(IsVirtualItem=1 AND PremiereDate >= DATETIME('now'))");
-                }
-                else
-                {
-                    whereClauses.Add("(IsVirtualItem=0 OR PremiereDate < DATETIME('now'))");
-                }
-            }
             var queryMediaTypes = query.MediaTypes.Where(IsValidMediaType).ToArray();
             if (queryMediaTypes.Length == 1)
             {

+ 0 - 7
MediaBrowser.Api/Reports/ReportsService.cs

@@ -183,7 +183,6 @@ namespace MediaBrowser.Api.Reports
                 Limit = request.Limit,
                 StartIndex = request.StartIndex,
                 IsMissing = request.IsMissing,
-                IsVirtualUnaired = request.IsVirtualUnaired,
                 IsUnaired = request.IsUnaired,
                 CollapseBoxSetItems = request.CollapseBoxSetItems,
                 NameLessThan = request.NameLessThan,
@@ -283,12 +282,6 @@ namespace MediaBrowser.Api.Reports
                 query.SeriesStatuses = request.SeriesStatus.Split(',').Select(d => (SeriesStatus)Enum.Parse(typeof(SeriesStatus), d, true)).ToArray();
             }
 
-            // Filter by Series AirDays
-            if (!string.IsNullOrEmpty(request.AirDays))
-            {
-                query.AirDays = request.AirDays.Split(',').Select(d => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), d, true)).ToArray();
-            }
-
             // ExcludeLocationTypes
             if (!string.IsNullOrEmpty(request.ExcludeLocationTypes))
             {

+ 0 - 14
MediaBrowser.Api/TvShowsService.cs

@@ -166,9 +166,6 @@ namespace MediaBrowser.Api
         [ApiMember(Name = "IsMissing", Description = "Optional filter by items that are missing episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
         public bool? IsMissing { 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; }
-
         [ApiMember(Name = "AdjacentTo", Description = "Optional. Return items that are siblings of a supplied item.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
         public string AdjacentTo { get; set; }
 
@@ -234,9 +231,6 @@ namespace MediaBrowser.Api
         [ApiMember(Name = "IsMissing", Description = "Optional filter by items that are missing episodes or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")]
         public bool? IsMissing { 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; }
-
         [ApiMember(Name = "AdjacentTo", Description = "Optional. Return items that are siblings of a supplied item.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
         public string AdjacentTo { get; set; }
 
@@ -446,7 +440,6 @@ namespace MediaBrowser.Api
             var seasons = (series.GetItemList(new InternalItemsQuery(user)
             {
                 IsMissing = request.IsMissing,
-                IsVirtualUnaired = request.IsVirtualUnaired,
                 IsSpecialSeason = request.IsSpecialSeason,
                 AdjacentTo = request.AdjacentTo
 
@@ -532,13 +525,6 @@ namespace MediaBrowser.Api
                 episodes = episodes.Where(i => i.IsMissingEpisode == val);
             }
 
-            // Filter after the fact in case the ui doesn't want them
-            if (request.IsVirtualUnaired.HasValue)
-            {
-                var val = request.IsVirtualUnaired.Value;
-                episodes = episodes.Where(i => i.IsVirtualUnaired == val);
-            }
-
             if (!string.IsNullOrWhiteSpace(request.StartItemId))
             {
                 episodes = episodes.SkipWhile(i => !string.Equals(i.Id.ToString("N"), request.StartItemId, StringComparison.OrdinalIgnoreCase));

+ 0 - 10
MediaBrowser.Api/UserLibrary/BaseItemsRequest.cs

@@ -70,9 +70,6 @@ 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")]
         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; }
-
         [ApiMember(Name = "MinCommunityRating", Description = "Optional filter by minimum community rating.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
         public double? MinCommunityRating { get; set; }
 
@@ -299,13 +296,6 @@ namespace MediaBrowser.Api.UserLibrary
         [ApiMember(Name = "VideoTypes", Description = "Optional filter by VideoType (videofile, dvd, bluray, iso). Allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
         public string VideoTypes { get; set; }
 
-        /// <summary>
-        /// Gets or sets the air days.
-        /// </summary>
-        /// <value>The air days.</value>
-        [ApiMember(Name = "AirDays", Description = "Optional filter by Series Air Days. Allows multiple, comma delimeted.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
-        public string AirDays { get; set; }
-
         /// <summary>
         /// Gets or sets the user id.
         /// </summary>

+ 0 - 7
MediaBrowser.Api/UserLibrary/ItemsService.cs

@@ -207,7 +207,6 @@ namespace MediaBrowser.Api.UserLibrary
                 Limit = request.Limit,
                 StartIndex = request.StartIndex,
                 IsMissing = request.IsMissing,
-                IsVirtualUnaired = request.IsVirtualUnaired,
                 IsUnaired = request.IsUnaired,
                 CollapseBoxSetItems = request.CollapseBoxSetItems,
                 NameLessThan = request.NameLessThan,
@@ -320,12 +319,6 @@ namespace MediaBrowser.Api.UserLibrary
                 query.SeriesStatuses = request.SeriesStatus.Split(',').Select(d => (SeriesStatus)Enum.Parse(typeof(SeriesStatus), d, true)).ToArray();
             }
 
-            // Filter by Series AirDays
-            if (!string.IsNullOrEmpty(request.AirDays))
-            {
-                query.AirDays = request.AirDays.Split(',').Select(d => (DayOfWeek)Enum.Parse(typeof(DayOfWeek), d, true)).ToArray();
-            }
-
             // ExcludeLocationTypes
             if (!string.IsNullOrEmpty(request.ExcludeLocationTypes))
             {

+ 1 - 7
MediaBrowser.Controller/Entities/Folder.cs

@@ -922,12 +922,6 @@ namespace MediaBrowser.Controller.Entities
                 return true;
             }
 
-            if (query.AirDays.Length > 0)
-            {
-                Logger.Debug("Query requires post-filtering due to AirDays");
-                return true;
-            }
-
             if (query.SeriesStatuses.Length > 0)
             {
                 Logger.Debug("Query requires post-filtering due to SeriesStatuses");
@@ -1388,7 +1382,7 @@ namespace MediaBrowser.Controller.Entities
                 EnableTotalRecordCount = false
             };
 
-            if (!user.Configuration.DisplayMissingEpisodes || !user.Configuration.DisplayUnairedEpisodes)
+            if (!user.Configuration.DisplayMissingEpisodes)
             {
                 query.IsVirtualItem = false;
             }

+ 0 - 3
MediaBrowser.Controller/Entities/InternalItemsQuery.cs

@@ -42,7 +42,6 @@ namespace MediaBrowser.Controller.Entities
         public bool? IsSpecialSeason { get; set; }
         public bool? IsMissing { get; set; }
         public bool? IsUnaired { get; set; }
-        public bool? IsVirtualUnaired { get; set; }
         public bool? CollapseBoxSetItems { get; set; }
 
         public string NameStartsWithOrGreater { get; set; }
@@ -149,7 +148,6 @@ namespace MediaBrowser.Controller.Entities
         public TrailerType[] TrailerTypes { get; set; }
         public SourceType[] SourceTypes { get; set; }
 
-        public DayOfWeek[] AirDays { get; set; }
         public SeriesStatus[] SeriesStatuses { get; set; }
         public string ExternalSeriesId { get; set; }
         public string ExternalId { get; set; }
@@ -214,7 +212,6 @@ namespace MediaBrowser.Controller.Entities
             PresetViews = new string[] { };
             TrailerTypes = new TrailerType[] { };
             SourceTypes = new SourceType[] { };
-            AirDays = new DayOfWeek[] { };
             SeriesStatuses = new SeriesStatus[] { };
             OrderBy = new List<Tuple<string, SortOrder>>();
         }

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

@@ -282,16 +282,10 @@ namespace MediaBrowser.Controller.Entities.TV
         {
             get
             {
-                return LocationType == LocationType.Virtual && !IsUnaired;
+                return LocationType == LocationType.Virtual;
             }
         }
 
-        [IgnoreDataMember]
-        public bool IsVirtualUnaired
-        {
-            get { return LocationType == LocationType.Virtual && IsUnaired; }
-        }
-
         [IgnoreDataMember]
         public Guid? SeasonId { get; set; }
         [IgnoreDataMember]
@@ -346,7 +340,6 @@ namespace MediaBrowser.Controller.Entities.TV
 
             id.IsMissingEpisode = IsMissingEpisode;
             id.IndexNumberEnd = IndexNumberEnd;
-            id.IsVirtualUnaired = IsVirtualUnaired;
 
             return id;
         }

+ 3 - 27
MediaBrowser.Controller/Entities/TV/Series.cs

@@ -250,18 +250,10 @@ namespace MediaBrowser.Controller.Entities.TV
             query.IncludeItemTypes = new[] { typeof(Season).Name };
             query.SortBy = new[] {ItemSortBy.SortName};
 
-            if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes)
-            {
-                query.IsVirtualItem = false;
-            }
-            else if (!config.DisplayMissingEpisodes)
+            if (!config.DisplayMissingEpisodes)
             {
                 query.IsMissing = false;
             }
-            else if (!config.DisplayUnairedEpisodes)
-            {
-                query.IsVirtualUnaired = false;
-            }
         }
 
         protected override QueryResult<BaseItem> GetItemsInternal(InternalItemsQuery query)
@@ -309,18 +301,10 @@ namespace MediaBrowser.Controller.Entities.TV
                 DtoOptions = options
             };
             var config = user.Configuration;
-            if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes)
-            {
-                query.IsVirtualItem = false;
-            }
-            else if (!config.DisplayMissingEpisodes)
+            if (!config.DisplayMissingEpisodes)
             {
                 query.IsMissing = false;
             }
-            else if (!config.DisplayUnairedEpisodes)
-            {
-                query.IsVirtualUnaired = false;
-            }
 
             var allItems = LibraryManager.GetItemList(query);
 
@@ -428,18 +412,10 @@ namespace MediaBrowser.Controller.Entities.TV
             if (user != null)
             {
                 var config = user.Configuration;
-                if (!config.DisplayMissingEpisodes && !config.DisplayUnairedEpisodes)
-                {
-                    query.IsVirtualItem = false;
-                }
-                else if (!config.DisplayMissingEpisodes)
+                if (!config.DisplayMissingEpisodes)
                 {
                     query.IsMissing = false;
                 }
-                else if (!config.DisplayUnairedEpisodes)
-                {
-                    query.IsVirtualUnaired = false;
-                }
             }
 
             var allItems = LibraryManager.GetItemList(query).OfType<Episode>();

+ 0 - 16
MediaBrowser.Controller/Entities/UserViewBuilder.cs

@@ -779,7 +779,6 @@ namespace MediaBrowser.Controller.Entities
 
             items = FilterVirtualEpisodes(items,
                 query.IsMissing,
-                query.IsVirtualUnaired,
                 query.IsUnaired);
 
             if (collapseBoxSetItems && user != null)
@@ -1065,7 +1064,6 @@ namespace MediaBrowser.Controller.Entities
         private static IEnumerable<BaseItem> FilterVirtualEpisodes(
             IEnumerable<BaseItem> items,
             bool? isMissing,
-            bool? isVirtualUnaired,
             bool? isUnaired)
         {
             if (isMissing.HasValue)
@@ -1096,20 +1094,6 @@ namespace MediaBrowser.Controller.Entities
                 });
             }
 
-            if (isVirtualUnaired.HasValue)
-            {
-                var val = isVirtualUnaired.Value;
-                items = items.Where(i =>
-                {
-                    var e = i as Episode;
-                    if (e != null)
-                    {
-                        return e.IsVirtualUnaired == val;
-                    }
-                    return true;
-                });
-            }
-
             return items;
         }
 

+ 13 - 13
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -925,19 +925,6 @@ namespace MediaBrowser.Controller.MediaEncoding
                 return false;
             }
 
-            // Video bitrate must fall within requested value
-            if (request.AudioBitRate.HasValue)
-            {
-                if (!audioStream.BitRate.HasValue || audioStream.BitRate.Value <= 0)
-                {
-                    return false;
-                }
-                if (audioStream.BitRate.Value > request.AudioBitRate.Value)
-                {
-                    return false;
-                }
-            }
-
             // Channels must fall within requested value
             var channels = request.AudioChannels ?? request.MaxAudioChannels;
             if (channels.HasValue)
@@ -965,6 +952,19 @@ namespace MediaBrowser.Controller.MediaEncoding
                 }
             }
 
+            // Video bitrate must fall within requested value
+            if (request.AudioBitRate.HasValue)
+            {
+                if (!audioStream.BitRate.HasValue || audioStream.BitRate.Value <= 0)
+                {
+                    return false;
+                }
+                if (audioStream.BitRate.Value > request.AudioBitRate.Value)
+                {
+                    return false;
+                }
+            }
+
             return request.EnableAutoStreamCopy;
         }
 

+ 0 - 1
MediaBrowser.Controller/Providers/EpisodeInfo.cs

@@ -10,7 +10,6 @@ namespace MediaBrowser.Controller.Providers
         public int? IndexNumberEnd { get; set; }
 
         public bool IsMissingEpisode { get; set; }
-        public bool IsVirtualUnaired { get; set; }
 
         public EpisodeInfo()
         {

+ 0 - 1
MediaBrowser.Model/Configuration/UserConfiguration.cs

@@ -25,7 +25,6 @@ namespace MediaBrowser.Model.Configuration
         public string SubtitleLanguagePreference { get; set; }
 
         public bool DisplayMissingEpisodes { get; set; }
-        public bool DisplayUnairedEpisodes { get; set; }
 
         public string[] GroupedFolders { get; set; }
 

+ 0 - 2
MediaBrowser.Model/MediaBrowser.Model.csproj

@@ -302,7 +302,6 @@
     <Compile Include="Querying\NextUpQuery.cs" />
     <Compile Include="Querying\QueryFilters.cs" />
     <Compile Include="Querying\QueryResult.cs" />
-    <Compile Include="Querying\SeasonQuery.cs" />
     <Compile Include="Querying\SessionQuery.cs" />
     <Compile Include="Querying\SimilarItemsQuery.cs" />
     <Compile Include="Querying\UpcomingEpisodesQuery.cs" />
@@ -339,7 +338,6 @@
     <Compile Include="IO\FileSystemEntryInfo.cs" />
     <Compile Include="Dto\ImageOptions.cs" />
     <Compile Include="Querying\ItemFilter.cs" />
-    <Compile Include="Querying\ItemQuery.cs" />
     <Compile Include="Entities\LibraryUpdateInfo.cs" />
     <Compile Include="Entities\ParentalRating.cs" />
     <Compile Include="Entities\VirtualFolderInfo.cs" />

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

@@ -1,332 +0,0 @@
-using MediaBrowser.Model.Entities;
-using System;
-
-namespace MediaBrowser.Model.Querying
-{
-    /// <summary>
-    /// Contains all the possible parameters that can be used to query for items
-    /// </summary>
-    public class ItemQuery
-    {
-        /// <summary>
-        /// The user to localize search results for
-        /// </summary>
-        /// <value>The user id.</value>
-        public string UserId { get; set; }
-
-        /// <summary>
-        /// Specify this to localize the search to a specific item or folder. Omit to use the root.
-        /// </summary>
-        /// <value>The parent id.</value>
-        public string ParentId { get; set; }
-
-        /// <summary>
-        /// Skips over a given number of items within the results. Use for paging.
-        /// </summary>
-        /// <value>The start index.</value>
-        public int? StartIndex { get; set; }
-
-        /// <summary>
-        /// The maximum number of items to return
-        /// </summary>
-        /// <value>The limit.</value>
-        public int? Limit { get; set; }
-
-        /// <summary>
-        /// What to sort the results by
-        /// </summary>
-        /// <value>The sort by.</value>
-        public string[] SortBy { get; set; }
-
-        /// <summary>
-        /// Gets or sets the artist ids.
-        /// </summary>
-        /// <value>The artist ids.</value>
-        public string[] ArtistIds { get; set; }
-        
-        /// <summary>
-        /// The sort order to return results with
-        /// </summary>
-        /// <value>The sort order.</value>
-        public SortOrder? SortOrder { get; set; }
-
-        /// <summary>
-        /// Filters to apply to the results
-        /// </summary>
-        /// <value>The filters.</value>
-        public ItemFilter[] Filters { get; set; }
-
-        /// <summary>
-        /// Fields to return within the items, in addition to basic information
-        /// </summary>
-        /// <value>The fields.</value>
-        public ItemFields[] Fields { get; set; }
-
-        /// <summary>
-        /// Gets or sets the media types.
-        /// </summary>
-        /// <value>The media types.</value>
-        public string[] MediaTypes { get; set; }
-
-        /// <summary>
-        /// Gets or sets the video formats.
-        /// </summary>
-        /// <value>The video formats.</value>
-        public bool? Is3D { get; set; }
-
-        /// <summary>
-        /// Gets or sets the video types.
-        /// </summary>
-        /// <value>The video types.</value>
-        public VideoType[] VideoTypes { get; set; }
-
-        /// <summary>
-        /// Whether or not to perform the query recursively
-        /// </summary>
-        /// <value><c>true</c> if recursive; otherwise, <c>false</c>.</value>
-        public bool Recursive { get; set; }
-
-        /// <summary>
-        /// Limit results to items containing specific genres
-        /// </summary>
-        /// <value>The genres.</value>
-        public string[] Genres { get; set; }
-
-        /// <summary>
-        /// Gets or sets the studio ids.
-        /// </summary>
-        /// <value>The studio ids.</value>
-        public string[] StudioIds { get; set; }
-
-        /// <summary>
-        /// Gets or sets the exclude item types.
-        /// </summary>
-        /// <value>The exclude item types.</value>
-        public string[] ExcludeItemTypes { get; set; }
-
-        /// <summary>
-        /// Gets or sets the include item types.
-        /// </summary>
-        /// <value>The include item types.</value>
-        public string[] IncludeItemTypes { get; set; }
-
-        /// <summary>
-        /// Limit results to items containing specific years
-        /// </summary>
-        /// <value>The years.</value>
-        public int[] Years { get; set; }
-
-        /// <summary>
-        /// Limit results to items containing a specific person
-        /// </summary>
-        /// <value>The person.</value>
-        public string[] PersonIds { get; set; }
-
-        /// <summary>
-        /// If the Person filter is used, this can also be used to restrict to a specific person type
-        /// </summary>
-        /// <value>The type of the person.</value>
-        public string[] PersonTypes { get; set; }
-
-        /// <summary>
-        /// Search characters used to find items
-        /// </summary>
-        /// <value>The index by.</value>
-        public string SearchTerm { get; set; }
-
-        /// <summary>
-        /// Gets or sets the image types.
-        /// </summary>
-        /// <value>The image types.</value>
-        public ImageType[] ImageTypes { get; set; }
-
-        /// <summary>
-        /// Gets or sets the air days.
-        /// </summary>
-        /// <value>The air days.</value>
-        public DayOfWeek[] AirDays { get; set; }
-
-        /// <summary>
-        /// Gets or sets the series status.
-        /// </summary>
-        /// <value>The series status.</value>
-        public SeriesStatus[] SeriesStatuses { get; set; }
-
-        /// <summary>
-        /// Gets or sets the ids, which are specific items to retrieve
-        /// </summary>
-        /// <value>The ids.</value>
-        public string[] Ids { get; set; }
-
-        /// <summary>
-        /// Gets or sets the min official rating.
-        /// </summary>
-        /// <value>The min official rating.</value>
-        public string MinOfficialRating { get; set; }
-
-        /// <summary>
-        /// Gets or sets the max official rating.
-        /// </summary>
-        /// <value>The max official rating.</value>
-        public string MaxOfficialRating { get; set; }
-
-        /// <summary>
-        /// Gets or sets the min index number.
-        /// </summary>
-        /// <value>The min index number.</value>
-        public int? MinIndexNumber { get; set; }
-
-        /// <summary>
-        /// Gets or sets a value indicating whether this instance has parental rating.
-        /// </summary>
-        /// <value><c>null</c> if [has parental rating] contains no value, <c>true</c> if [has parental rating]; otherwise, <c>false</c>.</value>
-        public bool? HasParentalRating { get; set; }
-
-        /// <summary>
-        /// Gets or sets a value indicating whether this instance is HD.
-        /// </summary>
-        /// <value><c>null</c> if [is HD] contains no value, <c>true</c> if [is HD]; otherwise, <c>false</c>.</value>
-        public bool? IsHD { get; set; }
-
-        /// <summary>
-        /// Gets or sets the parent index number.
-        /// </summary>
-        /// <value>The parent index number.</value>
-        public int? ParentIndexNumber { get; set; }
-
-        /// <summary>
-        /// Gets or sets the min players.
-        /// </summary>
-        /// <value>The min players.</value>
-        public int? MinPlayers { get; set; }
-
-        /// <summary>
-        /// Gets or sets the max players.
-        /// </summary>
-        /// <value>The max players.</value>
-        public int? MaxPlayers { get; set; }
-
-        /// <summary>
-        /// Gets or sets the name starts with or greater.
-        /// </summary>
-        /// <value>The name starts with or greater.</value>
-        public string NameStartsWithOrGreater { get; set; }
-
-        /// <summary>
-        /// Gets or sets the name starts with.
-        /// </summary>
-        /// <value>The name starts with or greater.</value>
-        public string NameStartsWith { get; set; }
-
-        /// <summary>
-        /// Gets or sets the name starts with.
-        /// </summary>
-        /// <value>The name lessthan.</value>
-        public string NameLessThan { get; set; }
-
-        /// <summary>
-        /// Gets or sets the album artist starts with or greater.
-        /// </summary>
-        /// <value>The album artist starts with or greater.</value>
-        public string AlbumArtistStartsWithOrGreater { get; set; }
-
-        /// <summary>
-        /// Gets or sets a value indicating whether [include index containers].
-        /// </summary>
-        /// <value><c>true</c> if [include index containers]; otherwise, <c>false</c>.</value>
-        public bool IncludeIndexContainers { get; set; }
-
-        /// <summary>
-        /// Gets or sets the location types.
-        /// </summary>
-        /// <value>The location types.</value>
-        public LocationType[] LocationTypes { get; set; }
-
-        /// <summary>
-        /// Gets or sets a value indicating whether this instance is missing episode.
-        /// </summary>
-        /// <value><c>null</c> if [is missing episode] contains no value, <c>true</c> if [is missing episode]; otherwise, <c>false</c>.</value>
-        public bool? IsMissing { get; set; }
-
-        /// <summary>
-        /// Gets or sets a value indicating whether this instance is unaired episode.
-        /// </summary>
-        /// <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? IsVirtualUnaired { get; set; }
-
-        public bool? IsInBoxSet { get; set; }
-
-        public bool? CollapseBoxSetItems { get; set; }
-
-        public bool? IsPlayed { get; set; }
-
-        /// <summary>
-        /// Gets or sets the exclude location types.
-        /// </summary>
-        /// <value>The exclude location types.</value>
-        public LocationType[] ExcludeLocationTypes { get; set; }
-
-        public double? MinCommunityRating { get; set; }
-        public double? MinCriticRating { get; set; }
-
-        public int? AiredDuringSeason { get; set; }
-
-        public DateTime? MinPremiereDate { get; set; }
-
-        public DateTime? MaxPremiereDate { get; set; }
-
-        public bool? EnableImages { get; set; }
-        public int? ImageTypeLimit { get; set; }
-        public ImageType[] EnableImageTypes { get; set; }
-
-        [Obsolete]
-        public string[] Artists { get; set; }
-        [Obsolete]
-        public string[] Studios { get; set; }
-        [Obsolete]
-        public string Person { get; set; }
-
-        public bool EnableTotalRecordCount { get; set; }
-
-        /// <summary>
-        /// Initializes a new instance of the <see cref="ItemQuery" /> class.
-        /// </summary>
-        public ItemQuery()
-        {
-            LocationTypes = new LocationType[] { };
-            ExcludeLocationTypes = new LocationType[] { };
-
-            SortBy = new string[] { };
-
-            Filters = new ItemFilter[] { };
-
-            Fields = new ItemFields[] { };
-
-            MediaTypes = new string[] { };
-
-            VideoTypes = new VideoType[] { };
-
-            EnableTotalRecordCount = true;
-
-            Artists = new string[] { };
-            Studios = new string[] { };
-            
-            Genres = new string[] { };
-            StudioIds = new string[] { };
-            IncludeItemTypes = new string[] { };
-            ExcludeItemTypes = new string[] { };
-            Years = new int[] { };
-            PersonTypes = new string[] { };
-            Ids = new string[] { };
-            ArtistIds = new string[] { };
-            PersonIds = new string[] { };
-
-            ImageTypes = new ImageType[] { };
-            AirDays = new DayOfWeek[] { };
-            SeriesStatuses = new SeriesStatus[] { };
-            EnableImageTypes = new ImageType[] { };
-        }
-    }
-}

+ 0 - 22
MediaBrowser.Model/Querying/SeasonQuery.cs

@@ -1,22 +0,0 @@
-namespace MediaBrowser.Model.Querying
-{
-    public class SeasonQuery
-    {
-        public string UserId { get; set; }
-
-        public string SeriesId { get; set; }
-
-        public bool? IsMissing { get; set; }
-
-        public bool? IsVirtualUnaired { get; set; }
-
-        public ItemFields[] Fields { get; set; }
-
-        public bool? IsSpecialSeason { get; set; }
-
-        public SeasonQuery()
-        {
-            Fields = new ItemFields[] { };
-        }
-    }
-}

+ 1 - 1
MediaBrowser.Providers/TV/Omdb/OmdbEpisodeProvider.cs

@@ -50,7 +50,7 @@ namespace MediaBrowser.Providers.TV
             };
 
             // Allowing this will dramatically increase scan times
-            if (info.IsMissingEpisode || info.IsVirtualUnaired)
+            if (info.IsMissingEpisode)
             {
                 return result;
             }

+ 1 - 1
MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs

@@ -68,7 +68,7 @@ namespace MediaBrowser.Providers.TV
             var result = new MetadataResult<Episode>();
 
             // Allowing this will dramatically increase scan times
-            if (info.IsMissingEpisode || info.IsVirtualUnaired)
+            if (info.IsMissingEpisode)
             {
                 return result;
             }

+ 1 - 1
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.726</version>
+        <version>3.0.727</version>
         <title>Emby.Common</title>
         <authors>Emby Team</authors>
         <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">
     <metadata>
         <id>MediaBrowser.Server.Core</id>
-        <version>3.0.726</version>
+        <version>3.0.727</version>
         <title>Emby.Server.Core</title>
         <authors>Emby Team</authors>
         <owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
         <description>Contains core components required to build plugins for Emby Server.</description>
         <copyright>Copyright © Emby 2013</copyright>
         <dependencies>
-            <dependency id="MediaBrowser.Common" version="3.0.726" />
+            <dependency id="MediaBrowser.Common" version="3.0.727" />
         </dependencies>
     </metadata>
     <files>

+ 1 - 1
SharedVersion.cs

@@ -1,3 +1,3 @@
 using System.Reflection;
 
-[assembly: AssemblyVersion("3.2.26.23")]
+[assembly: AssemblyVersion("3.2.26.24")]