aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager
diff options
context:
space:
mode:
authorcvium <clausvium@gmail.com>2020-10-03 13:36:53 +0200
committercvium <clausvium@gmail.com>2020-10-03 13:36:53 +0200
commit763862cbd879aceed9277d79c5e38e851403cfe6 (patch)
tree4555d8a56464daf840ef5b2d51838da395023d3f /MediaBrowser.Providers/Manager
parent6cafc152b9403f7870003b0e1a7c85ce74910162 (diff)
Defer image pre-fetching until the end of a refresh/scan
Diffstat (limited to 'MediaBrowser.Providers/Manager')
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs10
1 files changed, 6 insertions, 4 deletions
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index f110eafa5a..7ca51f4b5a 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -231,14 +231,14 @@ namespace MediaBrowser.Providers.Manager
private async Task SavePeopleMetadataAsync(List<PersonInfo> people, LibraryOptions libraryOptions, CancellationToken cancellationToken)
{
+ var personsToSave = new List<BaseItem>();
+
foreach (var person in people)
{
cancellationToken.ThrowIfCancellationRequested();
if (person.ProviderIds.Count > 0 || !string.IsNullOrWhiteSpace(person.ImageUrl))
{
- var updateType = ItemUpdateType.MetadataDownload;
-
var saveEntity = false;
var personEntity = LibraryManager.GetPerson(person.Name);
foreach (var id in person.ProviderIds)
@@ -255,15 +255,17 @@ namespace MediaBrowser.Providers.Manager
await AddPersonImageAsync(personEntity, libraryOptions, person.ImageUrl, cancellationToken).ConfigureAwait(false);
saveEntity = true;
- updateType |= ItemUpdateType.ImageUpdate;
}
if (saveEntity)
{
- await personEntity.UpdateToRepositoryAsync(updateType, cancellationToken).ConfigureAwait(false);
+ personsToSave.Add(personEntity);
}
}
}
+
+ LibraryManager.RunMetadataSavers(personsToSave, ItemUpdateType.MetadataDownload);
+ LibraryManager.CreateItems(personsToSave, null, CancellationToken.None);
}
private async Task AddPersonImageAsync(Person personEntity, LibraryOptions libraryOptions, string imageUrl, CancellationToken cancellationToken)