diff options
| author | gnattu <gnattu@users.noreply.github.com> | 2024-05-05 22:21:00 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-05 08:21:00 -0600 |
| commit | 77a101cc982a3d0aa14d230999cca2a452153a20 (patch) | |
| tree | 2022383eff6474ac5e36cd235fdf6ce3cfeee414 | |
| parent | e2a22cec0ef1af84cbefae73b8162d6c2f0fe240 (diff) | |
Fix missing season Index (#11472)
| -rw-r--r-- | MediaBrowser.Providers/Manager/MetadataService.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Providers/TV/SeriesMetadataService.cs | 20 |
2 files changed, 21 insertions, 1 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs index 6f473fc07a..d7990e2a78 100644 --- a/MediaBrowser.Providers/Manager/MetadataService.cs +++ b/MediaBrowser.Providers/Manager/MetadataService.cs @@ -72,7 +72,7 @@ namespace MediaBrowser.Providers.Manager } } - public async Task<ItemUpdateType> RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) + public virtual async Task<ItemUpdateType> RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) { var itemOfType = (TItemType)item; diff --git a/MediaBrowser.Providers/TV/SeriesMetadataService.cs b/MediaBrowser.Providers/TV/SeriesMetadataService.cs index 01c07d6332..0acc1c805b 100644 --- a/MediaBrowser.Providers/TV/SeriesMetadataService.cs +++ b/MediaBrowser.Providers/TV/SeriesMetadataService.cs @@ -8,6 +8,7 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Dto; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; @@ -35,6 +36,25 @@ namespace MediaBrowser.Providers.TV _localizationManager = localizationManager; } + public override async Task<ItemUpdateType> RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) + { + if (item is Series series) + { + var seasons = series.GetRecursiveChildren(i => i is Season).ToList(); + + foreach (var season in seasons) + { + var hasUpdate = refreshOptions != null && season.BeforeMetadataRefresh(refreshOptions.ReplaceAllMetadata); + if (hasUpdate) + { + await season.UpdateToRepositoryAsync(ItemUpdateType.MetadataEdit, cancellationToken).ConfigureAwait(false); + } + } + } + + return await base.RefreshMetadata(item, refreshOptions, cancellationToken).ConfigureAwait(false); + } + /// <inheritdoc /> protected override async Task AfterMetadataRefresh(Series item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) { |
