aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Eisele <Shadowghost@users.noreply.github.com>2024-09-28 16:51:48 +0200
committerGitHub <noreply@github.com>2024-09-28 08:51:48 -0600
commitd10406fd755d4a39b86b82b090a017c28af0ca43 (patch)
tree0614af1d899e5cd6b57d099e1544a59ea9bb5434
parentc8c58d6aac6e5256aa36805a0773205b52846c5b (diff)
Pre-fill ParentIndexNumber to preserve it between scans (#12739)
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs7
-rw-r--r--MediaBrowser.Providers/TV/EpisodeMetadataService.cs18
-rw-r--r--MediaBrowser.Providers/TV/SeasonMetadataService.cs13
-rw-r--r--MediaBrowser.Providers/TV/SeriesMetadataService.cs15
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)