diff options
| author | Tim Eisele <Shadowghost@users.noreply.github.com> | 2024-09-28 16:51:48 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-28 08:51:48 -0600 |
| commit | d10406fd755d4a39b86b82b090a017c28af0ca43 (patch) | |
| tree | 0614af1d899e5cd6b57d099e1544a59ea9bb5434 | |
| parent | c8c58d6aac6e5256aa36805a0773205b52846c5b (diff) | |
Pre-fill ParentIndexNumber to preserve it between scans (#12739)
| -rw-r--r-- | MediaBrowser.Providers/Manager/MetadataService.cs | 7 | ||||
| -rw-r--r-- | MediaBrowser.Providers/TV/EpisodeMetadataService.cs | 18 | ||||
| -rw-r--r-- | MediaBrowser.Providers/TV/SeasonMetadataService.cs | 13 | ||||
| -rw-r--r-- | MediaBrowser.Providers/TV/SeriesMetadataService.cs | 15 |
4 files changed, 44 insertions, 9 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 8af4ed2a8..7203bf115 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/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; diff --git a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs index d8855ec93..9b4793ee6 100644 --- a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs +++ b/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; + } } } } diff --git a/MediaBrowser.Providers/TV/SeasonMetadataService.cs b/MediaBrowser.Providers/TV/SeasonMetadataService.cs index 54dcee41e..8b690193e 100644 --- a/MediaBrowser.Providers/TV/SeasonMetadataService.cs +++ b/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, diff --git a/MediaBrowser.Providers/TV/SeriesMetadataService.cs b/MediaBrowser.Providers/TV/SeriesMetadataService.cs index 80c56351c..f4aede463 100644 --- a/MediaBrowser.Providers/TV/SeriesMetadataService.cs +++ b/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) |
