Fix TMDb Person Provider
This commit is contained in:
parent
665220c4fb
commit
06b8cf42d1
|
@ -49,37 +49,36 @@ namespace MediaBrowser.Providers.Plugins.Tmdb.People
|
||||||
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
|
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var person = (Person)item;
|
var person = (Person)item;
|
||||||
var personTmdbId = Convert.ToInt32(person.GetProviderId(MetadataProvider.Tmdb), CultureInfo.InvariantCulture);
|
|
||||||
|
|
||||||
if (personTmdbId > 0)
|
if (!person.TryGetProviderId(MetadataProvider.Tmdb, out var personTmdbId))
|
||||||
{
|
{
|
||||||
var personResult = await _tmdbClientManager.GetPersonAsync(personTmdbId, cancellationToken).ConfigureAwait(false);
|
return Enumerable.Empty<RemoteImageInfo>();
|
||||||
if (personResult?.Images?.Profiles == null)
|
|
||||||
{
|
|
||||||
return Enumerable.Empty<RemoteImageInfo>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var remoteImages = new List<RemoteImageInfo>();
|
|
||||||
var language = item.GetPreferredMetadataLanguage();
|
|
||||||
|
|
||||||
for (var i = 0; i < personResult.Images.Profiles.Count; i++)
|
|
||||||
{
|
|
||||||
var image = personResult.Images.Profiles[i];
|
|
||||||
remoteImages.Add(new RemoteImageInfo
|
|
||||||
{
|
|
||||||
ProviderName = Name,
|
|
||||||
Type = ImageType.Primary,
|
|
||||||
Width = image.Width,
|
|
||||||
Height = image.Height,
|
|
||||||
Language = TmdbUtils.AdjustImageLanguage(image.Iso_639_1, language),
|
|
||||||
Url = _tmdbClientManager.GetProfileUrl(image.FilePath)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
return remoteImages.OrderByLanguageDescending(language);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return Enumerable.Empty<RemoteImageInfo>();
|
var personResult = await _tmdbClientManager.GetPersonAsync(Convert.ToInt32(personTmdbId), cancellationToken).ConfigureAwait(false);
|
||||||
|
if (personResult?.Images?.Profiles == null)
|
||||||
|
{
|
||||||
|
return Enumerable.Empty<RemoteImageInfo>();
|
||||||
|
}
|
||||||
|
|
||||||
|
var remoteImages = new RemoteImageInfo[personResult.Images.Profiles.Count];
|
||||||
|
var language = item.GetPreferredMetadataLanguage();
|
||||||
|
|
||||||
|
for (var i = 0; i < personResult.Images.Profiles.Count; i++)
|
||||||
|
{
|
||||||
|
var image = personResult.Images.Profiles[i];
|
||||||
|
remoteImages[i] = new RemoteImageInfo
|
||||||
|
{
|
||||||
|
ProviderName = Name,
|
||||||
|
Type = ImageType.Primary,
|
||||||
|
Width = image.Width,
|
||||||
|
Height = image.Height,
|
||||||
|
Language = TmdbUtils.AdjustImageLanguage(image.Iso_639_1, language),
|
||||||
|
Url = _tmdbClientManager.GetProfileUrl(image.FilePath)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return remoteImages.OrderByLanguageDescending(language);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<HttpResponseMessage> GetImageResponse(string url, CancellationToken cancellationToken)
|
public Task<HttpResponseMessage> GetImageResponse(string url, CancellationToken cancellationToken)
|
||||||
|
|
|
@ -30,11 +30,9 @@ namespace MediaBrowser.Providers.Plugins.Tmdb.People
|
||||||
|
|
||||||
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(PersonLookupInfo searchInfo, CancellationToken cancellationToken)
|
public async Task<IEnumerable<RemoteSearchResult>> GetSearchResults(PersonLookupInfo searchInfo, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var personTmdbId = Convert.ToInt32(searchInfo.GetProviderId(MetadataProvider.Tmdb), CultureInfo.InvariantCulture);
|
if (searchInfo.TryGetProviderId(MetadataProvider.Tmdb, out var personTmdbId))
|
||||||
|
|
||||||
if (personTmdbId <= 0)
|
|
||||||
{
|
{
|
||||||
var personResult = await _tmdbClientManager.GetPersonAsync(personTmdbId, cancellationToken).ConfigureAwait(false);
|
var personResult = await _tmdbClientManager.GetPersonAsync(Convert.ToInt32(personTmdbId), cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
if (personResult != null)
|
if (personResult != null)
|
||||||
{
|
{
|
||||||
|
@ -51,19 +49,15 @@ namespace MediaBrowser.Providers.Plugins.Tmdb.People
|
||||||
}
|
}
|
||||||
|
|
||||||
result.SetProviderId(MetadataProvider.Tmdb, personResult.Id.ToString(CultureInfo.InvariantCulture));
|
result.SetProviderId(MetadataProvider.Tmdb, personResult.Id.ToString(CultureInfo.InvariantCulture));
|
||||||
result.SetProviderId(MetadataProvider.Imdb, personResult.ExternalIds.ImdbId);
|
if (!string.IsNullOrEmpty(personResult.ExternalIds.ImdbId))
|
||||||
|
{
|
||||||
|
result.SetProviderId(MetadataProvider.Imdb, personResult.ExternalIds.ImdbId);
|
||||||
|
}
|
||||||
|
|
||||||
return new[] { result };
|
return new[] { result };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO why? Because of the old rate limit?
|
|
||||||
if (searchInfo.IsAutomated)
|
|
||||||
{
|
|
||||||
// Don't hammer moviedb searching by name
|
|
||||||
return Enumerable.Empty<RemoteSearchResult>();
|
|
||||||
}
|
|
||||||
|
|
||||||
var personSearchResult = await _tmdbClientManager.SearchPersonAsync(searchInfo.Name, cancellationToken).ConfigureAwait(false);
|
var personSearchResult = await _tmdbClientManager.SearchPersonAsync(searchInfo.Name, cancellationToken).ConfigureAwait(false);
|
||||||
|
|
||||||
var remoteSearchResults = new List<RemoteSearchResult>();
|
var remoteSearchResults = new List<RemoteSearchResult>();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user