breakout person image provider
This commit is contained in:
parent
20845a7a7b
commit
c41e50b495
|
@ -2,7 +2,6 @@
|
||||||
using MediaBrowser.Common.Net;
|
using MediaBrowser.Common.Net;
|
||||||
using MediaBrowser.Controller.Configuration;
|
using MediaBrowser.Controller.Configuration;
|
||||||
using MediaBrowser.Controller.Entities;
|
using MediaBrowser.Controller.Entities;
|
||||||
using MediaBrowser.Controller.Entities.Movies;
|
|
||||||
using MediaBrowser.Controller.Library;
|
using MediaBrowser.Controller.Library;
|
||||||
using MediaBrowser.Controller.Providers;
|
using MediaBrowser.Controller.Providers;
|
||||||
using MediaBrowser.Model.Entities;
|
using MediaBrowser.Model.Entities;
|
||||||
|
|
|
@ -13,7 +13,6 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
@ -173,10 +172,6 @@ namespace MediaBrowser.Providers.Movies
|
||||||
{
|
{
|
||||||
await FetchInfo(person, id, force, cancellationToken).ConfigureAwait(false);
|
await FetchInfo(person, id, force, cancellationToken).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
Logger.Debug("TmdbPersonProvider Unable to obtain id for " + item.Name);
|
|
||||||
}
|
|
||||||
|
|
||||||
SetLastRefreshed(item, DateTime.UtcNow);
|
SetLastRefreshed(item, DateTime.UtcNow);
|
||||||
return true;
|
return true;
|
||||||
|
@ -256,10 +251,6 @@ namespace MediaBrowser.Providers.Movies
|
||||||
cancellationToken.ThrowIfCancellationRequested();
|
cancellationToken.ThrowIfCancellationRequested();
|
||||||
|
|
||||||
ProcessInfo(person, info);
|
ProcessInfo(person, info);
|
||||||
|
|
||||||
Logger.Debug("TmdbPersonProvider downloaded and saved information for {0}", person.Name);
|
|
||||||
|
|
||||||
await FetchImages(person, info.images, cancellationToken).ConfigureAwait(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -326,81 +317,6 @@ namespace MediaBrowser.Providers.Movies
|
||||||
person.SetProviderId(MetadataProviders.Tmdb, searchResult.id.ToString(_usCulture));
|
person.SetProviderId(MetadataProviders.Tmdb, searchResult.id.ToString(_usCulture));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Fetches the images.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="person">The person.</param>
|
|
||||||
/// <param name="searchResult">The search result.</param>
|
|
||||||
/// <param name="cancellationToken">The cancellation token.</param>
|
|
||||||
/// <returns>Task.</returns>
|
|
||||||
private async Task FetchImages(Person person, Images searchResult, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
if (searchResult != null && searchResult.profiles.Count > 0)
|
|
||||||
{
|
|
||||||
//get our language
|
|
||||||
var profile =
|
|
||||||
searchResult.profiles.FirstOrDefault(
|
|
||||||
p =>
|
|
||||||
!string.IsNullOrEmpty(GetIso639(p)) &&
|
|
||||||
GetIso639(p).Equals(ConfigurationManager.Configuration.PreferredMetadataLanguage,
|
|
||||||
StringComparison.OrdinalIgnoreCase));
|
|
||||||
if (profile == null)
|
|
||||||
{
|
|
||||||
//didn't find our language - try first null one
|
|
||||||
profile =
|
|
||||||
searchResult.profiles.FirstOrDefault(
|
|
||||||
p =>
|
|
||||||
!string.IsNullOrEmpty(GetIso639(p)) &&
|
|
||||||
GetIso639(p).Equals(ConfigurationManager.Configuration.PreferredMetadataLanguage,
|
|
||||||
StringComparison.OrdinalIgnoreCase));
|
|
||||||
|
|
||||||
}
|
|
||||||
if (profile == null)
|
|
||||||
{
|
|
||||||
//still nothing - just get first one
|
|
||||||
profile = searchResult.profiles[0];
|
|
||||||
}
|
|
||||||
if (profile != null && !person.HasImage(ImageType.Primary))
|
|
||||||
{
|
|
||||||
var tmdbSettings = await MovieDbProvider.Current.GetTmdbSettings(cancellationToken).ConfigureAwait(false);
|
|
||||||
|
|
||||||
await DownloadAndSaveImage(person, tmdbSettings.images.base_url + "original" + profile.file_path,
|
|
||||||
MimeTypes.GetMimeType(profile.file_path), cancellationToken).ConfigureAwait(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private string GetIso639(Profile p)
|
|
||||||
{
|
|
||||||
return p.iso_639_1 == null ? string.Empty : p.iso_639_1.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Downloads the and save image.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="item">The item.</param>
|
|
||||||
/// <param name="source">The source.</param>
|
|
||||||
/// <param name="mimeType">Type of the MIME.</param>
|
|
||||||
/// <param name="cancellationToken">The cancellation token.</param>
|
|
||||||
/// <returns>Task{System.String}.</returns>
|
|
||||||
private async Task DownloadAndSaveImage(BaseItem item, string source, string mimeType, CancellationToken cancellationToken)
|
|
||||||
{
|
|
||||||
if (source == null) return;
|
|
||||||
|
|
||||||
using (var sourceStream = await MovieDbProvider.Current.GetMovieDbResponse(new HttpRequestOptions
|
|
||||||
{
|
|
||||||
Url = source,
|
|
||||||
CancellationToken = cancellationToken
|
|
||||||
|
|
||||||
}).ConfigureAwait(false))
|
|
||||||
{
|
|
||||||
await ProviderManager.SaveImage(item, sourceStream, mimeType, ImageType.Primary, null, source, cancellationToken)
|
|
||||||
.ConfigureAwait(false);
|
|
||||||
|
|
||||||
Logger.Debug("TmdbPersonProvider downloaded and saved image for {0}", item.Name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Result Objects
|
#region Result Objects
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class PersonSearchResult
|
/// Class PersonSearchResult
|
||||||
|
|
Loading…
Reference in New Issue
Block a user