aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcvium <clausvium@gmail.com>2020-12-10 14:47:47 +0100
committercvium <clausvium@gmail.com>2020-12-10 14:47:47 +0100
commit3f6e6c48393f0cabadb10f95cd3b98b8a1cdd7b3 (patch)
tree2ab62ec63ce3045d7a32f1425a8bbb96c93666e3
parentdd238937f4739291dd4eab337d8be00194951761 (diff)
Simplify
-rw-r--r--Emby.Server.Implementations/Library/LibraryManager.cs21
-rw-r--r--MediaBrowser.Controller/Library/ILibraryManager.cs2
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs21
3 files changed, 23 insertions, 21 deletions
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs
index 47184b789..db27862ce 100644
--- a/Emby.Server.Implementations/Library/LibraryManager.cs
+++ b/Emby.Server.Implementations/Library/LibraryManager.cs
@@ -42,7 +42,6 @@ using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
using MediaBrowser.Model.Library;
-using MediaBrowser.Model.Net;
using MediaBrowser.Model.Querying;
using MediaBrowser.Model.Tasks;
using MediaBrowser.Providers.MediaInfo;
@@ -1957,7 +1956,10 @@ namespace Emby.Server.Implementations.Library
/// <inheritdoc />
public async Task UpdateItemsAsync(IReadOnlyList<BaseItem> items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken)
{
- await RunMetadataSavers(items, updateReason).ConfigureAwait(false);
+ foreach (var item in items)
+ {
+ await RunMetadataSavers(item, updateReason).ConfigureAwait(false);
+ }
_itemRepository.SaveItems(items, cancellationToken);
@@ -1994,19 +1996,16 @@ namespace Emby.Server.Implementations.Library
public Task UpdateItemAsync(BaseItem item, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken)
=> UpdateItemsAsync(new[] { item }, parent, updateReason, cancellationToken);
- public async Task RunMetadataSavers(IReadOnlyList<BaseItem> items, ItemUpdateType updateReason)
+ public Task RunMetadataSavers(BaseItem item, ItemUpdateType updateReason)
{
- foreach (var item in items)
+ if (item.IsFileProtocol)
{
- if (item.IsFileProtocol)
- {
- ProviderManager.SaveMetadata(item, updateReason);
- }
+ ProviderManager.SaveMetadata(item, updateReason);
+ }
- item.DateLastSaved = DateTime.UtcNow;
+ item.DateLastSaved = DateTime.UtcNow;
- await UpdateImagesAsync(item, updateReason >= ItemUpdateType.ImageUpdate).ConfigureAwait(false);
- }
+ return UpdateImagesAsync(item, updateReason >= ItemUpdateType.ImageUpdate);
}
/// <summary>
diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs
index ff80952f7..6700761fc 100644
--- a/MediaBrowser.Controller/Library/ILibraryManager.cs
+++ b/MediaBrowser.Controller/Library/ILibraryManager.cs
@@ -571,7 +571,7 @@ namespace MediaBrowser.Controller.Library
string videoPath,
string[] files);
- Task RunMetadataSavers(IReadOnlyList<BaseItem> items, ItemUpdateType updateReason);
+ Task RunMetadataSavers(BaseItem item, ItemUpdateType updateReason);
BaseItem GetParentItem(string parentId, Guid? userId);
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index a1cd0b2ea..8b3ca17ca 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -232,7 +232,6 @@ namespace MediaBrowser.Providers.Manager
private async Task SavePeopleMetadataAsync(List<PersonInfo> people, LibraryOptions libraryOptions, CancellationToken cancellationToken)
{
var personsToSave = new List<BaseItem>();
- var personsToSaveWithImages = new List<BaseItem>();
foreach (var person in people)
{
@@ -240,13 +239,15 @@ namespace MediaBrowser.Providers.Manager
if (person.ProviderIds.Count > 0 || !string.IsNullOrWhiteSpace(person.ImageUrl))
{
+ var itemUpdateType = ItemUpdateType.MetadataDownload;
+ var saveEntity = false;
var personEntity = LibraryManager.GetPerson(person.Name);
foreach (var id in person.ProviderIds)
{
if (!string.Equals(personEntity.GetProviderId(id.Key), id.Value, StringComparison.OrdinalIgnoreCase))
{
personEntity.SetProviderId(id.Key, id.Value);
- personsToSave.Add(personEntity);
+ saveEntity = true;
}
}
@@ -260,17 +261,19 @@ namespace MediaBrowser.Providers.Manager
},
0);
- personsToSaveWithImages.Add(personEntity);
+ saveEntity = true;
+ itemUpdateType = ItemUpdateType.ImageUpdate;
+ }
+
+ if (saveEntity)
+ {
+ personsToSave.Add(personEntity);
+ await LibraryManager.RunMetadataSavers(personEntity, itemUpdateType).ConfigureAwait(false);
}
}
}
- // This is a little ugly, but it saves a lot of I/O with the db by doing this in bulk.
- // To avoid updating images for no reason, we differentiate between the two item update types.
- await LibraryManager.RunMetadataSavers(personsToSave, ItemUpdateType.MetadataDownload).ConfigureAwait(false);
- await LibraryManager.RunMetadataSavers(personsToSaveWithImages, ItemUpdateType.ImageUpdate).ConfigureAwait(false);
-
- LibraryManager.CreateItems(personsToSave.Concat(personsToSaveWithImages).ToList(), null, CancellationToken.None);
+ LibraryManager.CreateItems(personsToSave, null, CancellationToken.None);
}
protected virtual Task AfterMetadataRefresh(TItemType item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)