mirror of
https://github.com/metatube-community/jellyfin-plugin-metatube.git
synced 2026-02-02 18:21:48 +08:00
Fix(provider): auto set actor pid (#327)
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user