فهرست منبع

Pre-fill ParentIndexNumber to preserve it between scans (#12739)

Tim Eisele 8 ماه پیش
والد
کامیت
d10406fd75

+ 4 - 3
MediaBrowser.Providers/Manager/MetadataService.cs

@@ -675,6 +675,7 @@ namespace MediaBrowser.Providers.Manager
             };
             temp.Item.Path = item.Path;
             temp.Item.Id = item.Id;
+            temp.Item.ParentIndexNumber = item.ParentIndexNumber;
             temp.Item.PreferredMetadataCountryCode = item.PreferredMetadataCountryCode;
             temp.Item.PreferredMetadataLanguage = item.PreferredMetadataLanguage;
 
@@ -728,7 +729,7 @@ namespace MediaBrowser.Providers.Manager
                                 refreshResult.UpdateType |= ItemUpdateType.ImageUpdate;
                             }
 
-                            MergeData(localItem, temp, Array.Empty<MetadataField>(), false, true);
+                            MergeData(localItem, temp, [], false, true);
                             refreshResult.UpdateType |= ItemUpdateType.MetadataImport;
 
                             break;
@@ -768,7 +769,7 @@ namespace MediaBrowser.Providers.Manager
                     if (!options.RemoveOldMetadata)
                     {
                         // Add existing metadata to provider result if it does not exist there
-                        MergeData(metadata, temp, Array.Empty<MetadataField>(), false, false);
+                        MergeData(metadata, temp, [], false, false);
                     }
 
                     if (isLocalLocked)
@@ -837,7 +838,7 @@ namespace MediaBrowser.Providers.Manager
                     {
                         result.Provider = provider.Name;
 
-                        MergeData(result, temp, Array.Empty<MetadataField>(), replaceData, false);
+                        MergeData(result, temp, [], replaceData, false);
                         MergeNewData(temp.Item, id);
 
                         refreshResult.UpdateType |= ItemUpdateType.MetadataDownload;

+ 16 - 2
MediaBrowser.Providers/TV/EpisodeMetadataService.cs

@@ -1,5 +1,3 @@
-#pragma warning disable CS1591
-
 using System;
 using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Entities.TV;
@@ -12,8 +10,19 @@ using Microsoft.Extensions.Logging;
 
 namespace MediaBrowser.Providers.TV
 {
+    /// <summary>
+    /// Service to manage episode metadata.
+    /// </summary>
     public class EpisodeMetadataService : MetadataService<Episode, EpisodeInfo>
     {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="EpisodeMetadataService"/> class.
+        /// </summary>
+        /// <param name="serverConfigurationManager">Instance of the <see cref="IServerConfigurationManager"/> interface.</param>
+        /// <param name="logger">Instance of the <see cref="ILogger{SeasonMetadataService}"/> interface.</param>
+        /// <param name="providerManager">Instance of the <see cref="IProviderManager"/> interface.</param>
+        /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param>
+        /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param>
         public EpisodeMetadataService(
             IServerConfigurationManager serverConfigurationManager,
             ILogger<EpisodeMetadataService> logger,
@@ -94,6 +103,11 @@ namespace MediaBrowser.Providers.TV
             {
                 targetItem.IndexNumberEnd = sourceItem.IndexNumberEnd;
             }
+
+            if (replaceData || !targetItem.ParentIndexNumber.HasValue)
+            {
+                targetItem.ParentIndexNumber = sourceItem.ParentIndexNumber;
+            }
         }
     }
 }

+ 11 - 2
MediaBrowser.Providers/TV/SeasonMetadataService.cs

@@ -1,5 +1,3 @@
-#pragma warning disable CS1591
-
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -15,8 +13,19 @@ using Microsoft.Extensions.Logging;
 
 namespace MediaBrowser.Providers.TV
 {
+    /// <summary>
+    /// Service to manage season metadata.
+    /// </summary>
     public class SeasonMetadataService : MetadataService<Season, SeasonInfo>
     {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="SeasonMetadataService"/> class.
+        /// </summary>
+        /// <param name="serverConfigurationManager">Instance of the <see cref="IServerConfigurationManager"/> interface.</param>
+        /// <param name="logger">Instance of the <see cref="ILogger{SeasonMetadataService}"/> interface.</param>
+        /// <param name="providerManager">Instance of the <see cref="IProviderManager"/> interface.</param>
+        /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param>
+        /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param>
         public SeasonMetadataService(
             IServerConfigurationManager serverConfigurationManager,
             ILogger<SeasonMetadataService> logger,

+ 13 - 2
MediaBrowser.Providers/TV/SeriesMetadataService.cs

@@ -1,5 +1,3 @@
-#pragma warning disable CS1591
-
 using System;
 using System.Collections.Generic;
 using System.Globalization;
@@ -20,10 +18,22 @@ using Microsoft.Extensions.Logging;
 
 namespace MediaBrowser.Providers.TV
 {
+    /// <summary>
+    /// Service to manage series metadata.
+    /// </summary>
     public class SeriesMetadataService : MetadataService<Series, SeriesInfo>
     {
         private readonly ILocalizationManager _localizationManager;
 
+        /// <summary>
+        /// Initializes a new instance of the <see cref="SeriesMetadataService"/> class.
+        /// </summary>
+        /// <param name="serverConfigurationManager">Instance of the <see cref="IServerConfigurationManager"/> interface.</param>
+        /// <param name="logger">Instance of the <see cref="ILogger{SeasonMetadataService}"/> interface.</param>
+        /// <param name="providerManager">Instance of the <see cref="IProviderManager"/> interface.</param>
+        /// <param name="fileSystem">Instance of the <see cref="IFileSystem"/> interface.</param>
+        /// <param name="libraryManager">Instance of the <see cref="ILibraryManager"/> interface.</param>
+        /// <param name="localizationManager">Instance of the <see cref="ILocalizationManager"/> interface.</param>
         public SeriesMetadataService(
             IServerConfigurationManager serverConfigurationManager,
             ILogger<SeriesMetadataService> logger,
@@ -36,6 +46,7 @@ namespace MediaBrowser.Providers.TV
             _localizationManager = localizationManager;
         }
 
+        /// <inheritdoc />
         public override async Task<ItemUpdateType> RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
         {
             if (item is Series series)