diff options
| author | JPVenson <github@jpb.email> | 2025-09-26 04:27:38 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-25 19:27:38 -0600 |
| commit | 54d48fa44669e4728769d9aaee0346748b10946e (patch) | |
| tree | 32b921286e8b7e999ea30425e3a7053367208265 /Jellyfin.Server.Implementations | |
| parent | 1736a566ccad07142bde86c0b450175f943e5848 (diff) | |
Fix people deduplication lookup (#14864)
Diffstat (limited to 'Jellyfin.Server.Implementations')
| -rw-r--r-- | Jellyfin.Server.Implementations/Item/PeopleRepository.cs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs index 3fe5d090d..fc36a4331 100644 --- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs +++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs @@ -74,6 +74,11 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I /// <inheritdoc /> public void UpdatePeople(Guid itemId, IReadOnlyList<PersonInfo> people) { + foreach (var item in people.Where(e => e.Role is null)) + { + item.Role = string.Empty; + } + // multiple metadata providers can provide the _same_ person people = people.DistinctBy(e => e.Name + "-" + e.Type).ToArray(); var personKeys = people.Select(e => e.Name + "-" + e.Type).ToArray(); @@ -106,7 +111,7 @@ public class PeopleRepository(IDbContextFactory<JellyfinDbContext> dbProvider, I foreach (var person in people) { var entityPerson = personsEntities.First(e => e.Name == person.Name && e.PersonType == person.Type.ToString()); - var existingMap = existingMaps.FirstOrDefault(e => e.People.Name == person.Name && e.Role == person.Role); + var existingMap = existingMaps.FirstOrDefault(e => e.People.Name == person.Name && e.People.PersonType == person.Type.ToString() && e.Role == person.Role); if (existingMap is null) { var sortOrder = person.Type == PersonKind.Actor ? (person.SortOrder ?? ++maxSortOrder) : person.SortOrder; |
