From 9db2ca5e523565ced4c83ad962126ecee2108412 Mon Sep 17 00:00:00 2001 From: xjasonlyu Date: Sun, 29 May 2022 18:30:49 +0800 Subject: [PATCH] update ActorProvider --- .../Providers/ActorProvider.cs | 54 ++++++++++++------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/Jellyfin.Plugin.JavTube/Providers/ActorProvider.cs b/Jellyfin.Plugin.JavTube/Providers/ActorProvider.cs index 92c4256..442368f 100644 --- a/Jellyfin.Plugin.JavTube/Providers/ActorProvider.cs +++ b/Jellyfin.Plugin.JavTube/Providers/ActorProvider.cs @@ -24,7 +24,7 @@ public class ActorProvider : BaseProvider, IRemoteMetadataProvider 1; @@ -34,19 +34,18 @@ public class ActorProvider : BaseProvider, IRemoteMetadataProvider> GetMetadata(PersonLookupInfo info, CancellationToken cancellationToken) { - var pm = info.GetProviderIdModel(Name); - if (string.IsNullOrWhiteSpace(pm.Id) || string.IsNullOrWhiteSpace(pm.Provider)) + var pid = info.GetProviderIdModel(Name); + if (string.IsNullOrWhiteSpace(pid.Id) || string.IsNullOrWhiteSpace(pid.Provider)) { - var searchResults = (await GetSearchResults(info, cancellationToken) - .ConfigureAwait(false)).ToList(); + var searchResults = (await GetSearchResults(info, cancellationToken)).ToList(); if (searchResults.Any()) { var firstResult = searchResults.First(); - pm = firstResult.GetProviderIdModel(Name); + pid = firstResult.GetProviderIdModel(Name); } } - var m = await ApiClient.GetActorInfo(pm.Id, pm.Provider, cancellationToken); + var m = await ApiClient.GetActorInfo(pid.Id, pid.Provider, cancellationToken); var result = new MetadataResult { @@ -60,37 +59,51 @@ public class ActorProvider : BaseProvider, IRemoteMetadataProvider> GetSearchResults( PersonLookupInfo info, CancellationToken cancellationToken) { - var pm = info.GetProviderIdModel(Name); - if (string.IsNullOrWhiteSpace(pm.Id)) - pm.Id = info.Name; + var pid = info.GetProviderIdModel(Name); + if (string.IsNullOrWhiteSpace(pid.Id)) + { + // Search actor by name. + pid.Id = info.Name; + } - var searchResults = await ApiClient.SearchActor(pm.Id, pm.Provider, cancellationToken); + LogInfo("Search for actor: {0}", pid.Id); var results = new List(); + + var searchResults = await ApiClient.SearchActor(pid.Id, pid.Provider, cancellationToken); + if (!searchResults.Any()) + { + LogInfo("Actor not found: {0}", pid.Id); + return results; + } + foreach (var m in searchResults) { var result = new RemoteSearchResult { Name = m.Name, - SearchProviderName = Name + SearchProviderName = Name, + ImageUrl = m.Images.Length > 0 + ? ApiClient.GetPrimaryImageApiUrl(m.Id, m.Provider, m.Images[0], 0.5, true) + : string.Empty }; - if (m.Images.Length > 0) - result.ImageUrl = ApiClient.GetPrimaryImageApiUrl(m.Id, m.Provider, m.Images[0], auto: true); result.SetProviderIdModel(Name, new ProviderIdModel { Provider = m.Provider, @@ -111,9 +124,10 @@ public class ActorProvider : BaseProvider, IRemoteMetadataProvider