Bläddra i källkod

update seasons

Luke Pulverenti 9 år sedan
förälder
incheckning
329e047803

+ 1 - 1
MediaBrowser.Api/TvShowsService.cs

@@ -418,7 +418,7 @@ namespace MediaBrowser.Api
             if (request.IsMissing.HasValue)
             {
                 var val = request.IsMissing.Value;
-                items = items.Where(i => (i.IsMissingSeason ?? false) == val);
+                items = items.Where(i => (i.IsMissingSeason) == val);
             }
 
             if (request.IsVirtualUnaired.HasValue)

+ 15 - 14
MediaBrowser.Controller/Entities/TV/Season.cs

@@ -134,7 +134,7 @@ namespace MediaBrowser.Controller.Entities.TV
 
             if (!result)
             {
-                if (!IsMissingSeason.HasValue)
+                if (!IsVirtualItem.HasValue)
                 {
                     return true;
                 }
@@ -144,12 +144,18 @@ namespace MediaBrowser.Controller.Entities.TV
         }
 
         [IgnoreDataMember]
-        public bool? IsMissingSeason { get; set; }
+        public bool? IsVirtualItem { get; set; }
+
+        [IgnoreDataMember]
+        public bool IsMissingSeason
+        {
+            get { return (IsVirtualItem ?? false) && !IsUnaired; }
+        }
 
         [IgnoreDataMember]
         public bool IsVirtualUnaired
         {
-            get { return LocationType == LocationType.Virtual && IsUnaired; }
+            get { return (IsVirtualItem ?? false) && IsUnaired; }
         }
 
         [IgnoreDataMember]
@@ -313,19 +319,14 @@ namespace MediaBrowser.Controller.Entities.TV
         {
             var hasChanges = base.BeforeMetadataRefresh();
 
-            var locationType = LocationType;
-
-            if (locationType == LocationType.FileSystem || locationType == LocationType.Offline)
+            if (!IndexNumber.HasValue && !string.IsNullOrEmpty(Path))
             {
-                if (!IndexNumber.HasValue && !string.IsNullOrEmpty(Path))
-                {
-                    IndexNumber = IndexNumber ?? LibraryManager.GetSeasonNumberFromPath(Path);
+                IndexNumber = IndexNumber ?? LibraryManager.GetSeasonNumberFromPath(Path);
 
-                    // If a change was made record it
-                    if (IndexNumber.HasValue)
-                    {
-                        hasChanges = true;
-                    }
+                // If a change was made record it
+                if (IndexNumber.HasValue)
+                {
+                    hasChanges = true;
                 }
             }
 

+ 1 - 1
MediaBrowser.Controller/Entities/TV/Series.cs

@@ -240,7 +240,7 @@ namespace MediaBrowser.Controller.Entities.TV
 
             if (!includeMissingSeasons)
             {
-                seasons = seasons.Where(i => !(i.IsMissingSeason ?? false));
+                seasons = seasons.Where(i => !(i.IsMissingSeason));
             }
             if (!includeVirtualUnaired)
             {

+ 1 - 1
MediaBrowser.Controller/Entities/UserViewBuilder.cs

@@ -1142,7 +1142,7 @@ namespace MediaBrowser.Controller.Entities
                     var e = i as Season;
                     if (e != null)
                     {
-                        return (e.IsMissingSeason ?? false) == val;
+                        return (e.IsMissingSeason) == val;
                     }
                     return true;
                 });

+ 2 - 2
MediaBrowser.Providers/TV/DummySeasonProvider.cs

@@ -97,7 +97,7 @@ namespace MediaBrowser.Providers.TV
         /// </summary>
         public async Task<Season> AddSeason(Series series,
             int? seasonNumber,
-            bool isMissingSeason,
+            bool isVirtualItem,
             CancellationToken cancellationToken)
         {
             var seasonName = seasonNumber == 0 ?
@@ -111,7 +111,7 @@ namespace MediaBrowser.Providers.TV
                 Name = seasonName,
                 IndexNumber = seasonNumber,
                 Id = _libraryManager.GetNewItemId((series.Id + (seasonNumber ?? -1).ToString(_usCulture) + seasonName), typeof(Season)),
-                IsMissingSeason = isMissingSeason
+                IsVirtualItem = isVirtualItem
             };
 
             season.SetParent(series);

+ 5 - 5
MediaBrowser.Providers/TV/SeasonMetadataService.cs

@@ -36,7 +36,7 @@ namespace MediaBrowser.Providers.TV
             {
                 var episodes = item.GetEpisodes().ToList();
                 updateType |= SavePremiereDate(item, episodes);
-                updateType |= SaveIsMissing(item, episodes);
+                updateType |= SaveIsVirtualItem(item, episodes);
             }
 
             return updateType;
@@ -67,13 +67,13 @@ namespace MediaBrowser.Providers.TV
             return ItemUpdateType.None;
         }
 
-        private ItemUpdateType SaveIsMissing(Season item, List<Episode> episodes)
+        private ItemUpdateType SaveIsVirtualItem(Season item, List<Episode> episodes)
         {
-            var isMissing = item.LocationType == LocationType.Virtual && (episodes.Count == 0 || episodes.All(i => i.IsMissingEpisode));
+            var isVirtualItem = item.LocationType == LocationType.Virtual && (episodes.Count == 0 || episodes.All(i => i.LocationType == LocationType.Virtual));
 
-            if (item.IsMissingSeason != isMissing)
+            if (item.IsVirtualItem != isVirtualItem)
             {
-                item.IsMissingSeason = isMissing;
+                item.IsVirtualItem = isVirtualItem;
                 return ItemUpdateType.MetadataEdit;
             }
 

+ 21 - 2
MediaBrowser.Server.Implementations/Persistence/SqliteItemRepository.cs

@@ -238,6 +238,7 @@ namespace MediaBrowser.Server.Implementations.Persistence
             _connection.AddColumn(Logger, "TypedBaseItems", "PrimaryVersionId", "Text");
             _connection.AddColumn(Logger, "TypedBaseItems", "DateLastMediaAdded", "DATETIME");
             _connection.AddColumn(Logger, "TypedBaseItems", "Album", "Text");
+            _connection.AddColumn(Logger, "TypedBaseItems", "IsVirtualItem", "BIT");
 
             _connection.AddColumn(Logger, "UserDataKeys", "Priority", "INT");
 
@@ -359,7 +360,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
             "DateLastMediaAdded",
             "Album",
             "CriticRating",
-            "CriticRatingSummary"
+            "CriticRatingSummary",
+            "IsVirtualItem"
         };
 
         private readonly string[] _mediaStreamSaveColumns =
@@ -474,7 +476,8 @@ namespace MediaBrowser.Server.Implementations.Persistence
                 "OriginalTitle",
                 "PrimaryVersionId",
                 "DateLastMediaAdded",
-                "Album"
+                "Album",
+                "IsVirtualItem"
             };
             _saveItemCommand = _connection.CreateCommand();
             _saveItemCommand.CommandText = "replace into TypedBaseItems (" + string.Join(",", saveColumns.ToArray()) + ") values (";
@@ -866,6 +869,16 @@ namespace MediaBrowser.Server.Implementations.Persistence
 
                     _saveItemCommand.GetParameter(index++).Value = item.Album;
 
+                    var season = item as Season;
+                    if (season != null && season.IsVirtualItem.HasValue)
+                    {
+                        _saveItemCommand.GetParameter(index++).Value = season.IsVirtualItem.Value;
+                    }
+                    else
+                    {
+                        _saveItemCommand.GetParameter(index++).Value = null;
+                    }
+
                     _saveItemCommand.Transaction = transaction;
 
                     _saveItemCommand.ExecuteNonQuery();
@@ -1281,6 +1294,12 @@ namespace MediaBrowser.Server.Implementations.Persistence
                 item.CriticRatingSummary = reader.GetString(57);
             }
 
+            var season = item as Season;
+            if (season != null && !reader.IsDBNull(58))
+            {
+                season.IsVirtualItem = reader.GetBoolean(58);
+            }
+
             return item;
         }