mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-07-09 03:04:24 -04:00
Pre-fill ParentIndexNumber to preserve it between scans (#12739)
This commit is contained in:
parent
c8c58d6aac
commit
d10406fd75
@ -675,6 +675,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
};
|
};
|
||||||
temp.Item.Path = item.Path;
|
temp.Item.Path = item.Path;
|
||||||
temp.Item.Id = item.Id;
|
temp.Item.Id = item.Id;
|
||||||
|
temp.Item.ParentIndexNumber = item.ParentIndexNumber;
|
||||||
temp.Item.PreferredMetadataCountryCode = item.PreferredMetadataCountryCode;
|
temp.Item.PreferredMetadataCountryCode = item.PreferredMetadataCountryCode;
|
||||||
temp.Item.PreferredMetadataLanguage = item.PreferredMetadataLanguage;
|
temp.Item.PreferredMetadataLanguage = item.PreferredMetadataLanguage;
|
||||||
|
|
||||||
@ -728,7 +729,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
refreshResult.UpdateType |= ItemUpdateType.ImageUpdate;
|
refreshResult.UpdateType |= ItemUpdateType.ImageUpdate;
|
||||||
}
|
}
|
||||||
|
|
||||||
MergeData(localItem, temp, Array.Empty<MetadataField>(), false, true);
|
MergeData(localItem, temp, [], false, true);
|
||||||
refreshResult.UpdateType |= ItemUpdateType.MetadataImport;
|
refreshResult.UpdateType |= ItemUpdateType.MetadataImport;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -768,7 +769,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
if (!options.RemoveOldMetadata)
|
if (!options.RemoveOldMetadata)
|
||||||
{
|
{
|
||||||
// Add existing metadata to provider result if it does not exist there
|
// 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)
|
if (isLocalLocked)
|
||||||
@ -837,7 +838,7 @@ namespace MediaBrowser.Providers.Manager
|
|||||||
{
|
{
|
||||||
result.Provider = provider.Name;
|
result.Provider = provider.Name;
|
||||||
|
|
||||||
MergeData(result, temp, Array.Empty<MetadataField>(), replaceData, false);
|
MergeData(result, temp, [], replaceData, false);
|
||||||
MergeNewData(temp.Item, id);
|
MergeNewData(temp.Item, id);
|
||||||
|
|
||||||
refreshResult.UpdateType |= ItemUpdateType.MetadataDownload;
|
refreshResult.UpdateType |= ItemUpdateType.MetadataDownload;
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma warning disable CS1591
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using MediaBrowser.Controller.Configuration;
|
using MediaBrowser.Controller.Configuration;
|
||||||
using MediaBrowser.Controller.Entities.TV;
|
using MediaBrowser.Controller.Entities.TV;
|
||||||
@ -12,8 +10,19 @@ using Microsoft.Extensions.Logging;
|
|||||||
|
|
||||||
namespace MediaBrowser.Providers.TV
|
namespace MediaBrowser.Providers.TV
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Service to manage episode metadata.
|
||||||
|
/// </summary>
|
||||||
public class EpisodeMetadataService : MetadataService<Episode, EpisodeInfo>
|
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(
|
public EpisodeMetadataService(
|
||||||
IServerConfigurationManager serverConfigurationManager,
|
IServerConfigurationManager serverConfigurationManager,
|
||||||
ILogger<EpisodeMetadataService> logger,
|
ILogger<EpisodeMetadataService> logger,
|
||||||
@ -94,6 +103,11 @@ namespace MediaBrowser.Providers.TV
|
|||||||
{
|
{
|
||||||
targetItem.IndexNumberEnd = sourceItem.IndexNumberEnd;
|
targetItem.IndexNumberEnd = sourceItem.IndexNumberEnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (replaceData || !targetItem.ParentIndexNumber.HasValue)
|
||||||
|
{
|
||||||
|
targetItem.ParentIndexNumber = sourceItem.ParentIndexNumber;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma warning disable CS1591
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -15,8 +13,19 @@ using Microsoft.Extensions.Logging;
|
|||||||
|
|
||||||
namespace MediaBrowser.Providers.TV
|
namespace MediaBrowser.Providers.TV
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Service to manage season metadata.
|
||||||
|
/// </summary>
|
||||||
public class SeasonMetadataService : MetadataService<Season, SeasonInfo>
|
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(
|
public SeasonMetadataService(
|
||||||
IServerConfigurationManager serverConfigurationManager,
|
IServerConfigurationManager serverConfigurationManager,
|
||||||
ILogger<SeasonMetadataService> logger,
|
ILogger<SeasonMetadataService> logger,
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
#pragma warning disable CS1591
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
@ -20,10 +18,22 @@ using Microsoft.Extensions.Logging;
|
|||||||
|
|
||||||
namespace MediaBrowser.Providers.TV
|
namespace MediaBrowser.Providers.TV
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Service to manage series metadata.
|
||||||
|
/// </summary>
|
||||||
public class SeriesMetadataService : MetadataService<Series, SeriesInfo>
|
public class SeriesMetadataService : MetadataService<Series, SeriesInfo>
|
||||||
{
|
{
|
||||||
private readonly ILocalizationManager _localizationManager;
|
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(
|
public SeriesMetadataService(
|
||||||
IServerConfigurationManager serverConfigurationManager,
|
IServerConfigurationManager serverConfigurationManager,
|
||||||
ILogger<SeriesMetadataService> logger,
|
ILogger<SeriesMetadataService> logger,
|
||||||
@ -36,6 +46,7 @@ namespace MediaBrowser.Providers.TV
|
|||||||
_localizationManager = localizationManager;
|
_localizationManager = localizationManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
public override async Task<ItemUpdateType> RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
|
public override async Task<ItemUpdateType> RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
if (item is Series series)
|
if (item is Series series)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user