Fix(provider): auto set actor pid (#327)

This commit is contained in:
Jason Lyu
2024-05-18 17:26:57 -04:00
committed by GitHub
parent f0b03a63c3
commit edc80b24d7

View File

@@ -166,7 +166,7 @@ public class MovieProvider : BaseProvider, IRemoteMetadataProvider<Movie, MovieI
// Add actors.
foreach (var name in m.Actors ?? Enumerable.Empty<string>())
{
result.AddPerson(new PersonInfo
var actor = new PersonInfo
{
Name = name,
#if __EMBY__
@@ -174,8 +174,9 @@ public class MovieProvider : BaseProvider, IRemoteMetadataProvider<Movie, MovieI
#else
Type = PersonKind.Actor,
#endif
ImageUrl = await GetActorImageUrl(name, cancellationToken)
});
};
await SetActorImageUrl(actor, cancellationToken);
result.AddPerson(actor);
}
return result;
@@ -242,21 +243,22 @@ public class MovieProvider : BaseProvider, IRemoteMetadataProvider<Movie, MovieI
return results;
}
private async Task<string> GetActorImageUrl(string name, CancellationToken cancellationToken)
private async Task SetActorImageUrl(PersonInfo actor, CancellationToken cancellationToken)
{
try
{
// Use GFriends as actor image provider.
foreach (var actor in (await ApiClient.SearchActorAsync(name, GFriends, false, cancellationToken))
.Where(actor => actor.Images?.Any() == true))
return actor.Images.First();
foreach (var result in (await ApiClient.SearchActorAsync(actor.Name, GFriends, false, cancellationToken))
.Where(result => result.Images?.Any() == true))
{
actor.ImageUrl = result.Images.First();
actor.SetPid(Name, GFriends, actor.Name);
}
}
catch (Exception e)
{
Logger.Error("Get actor image error: {0} ({1})", name, e.Message);
Logger.Error("Get actor image error: {0} ({1})", actor.Name, e.Message);
}
return string.Empty;
}
private async Task ConvertToRealActorNames(MovieSearchResult m, CancellationToken cancellationToken)