diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-04 13:02:19 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-04 13:02:19 -0400 |
| commit | dfe91e43b676915b840f0958e331ba2cb57966d4 (patch) | |
| tree | 4e1fe02b4b767f3a5b81eb4eefbf97581a8dc37c /MediaBrowser.Providers | |
| parent | 981973a028f51410b5fcc114d959bcad326aac52 (diff) | |
Added IDtoService
Diffstat (limited to 'MediaBrowser.Providers')
5 files changed, 50 insertions, 28 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs index 2b856d1108..44bc461f39 100644 --- a/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/AudioImageProvider.cs @@ -39,21 +39,14 @@ namespace MediaBrowser.Providers.MediaInfo private readonly IMediaEncoder _mediaEncoder; /// <summary> - /// The _library manager - /// </summary> - private readonly ILibraryManager _libraryManager; - - /// <summary> /// Initializes a new instance of the <see cref="BaseMetadataProvider" /> class. /// </summary> /// <param name="logManager">The log manager.</param> /// <param name="configurationManager">The configuration manager.</param> - /// <param name="libraryManager">The library manager.</param> /// <param name="mediaEncoder">The media encoder.</param> - public AudioImageProvider(ILogManager logManager, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IMediaEncoder mediaEncoder) + public AudioImageProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IMediaEncoder mediaEncoder) : base(logManager, configurationManager) { - _libraryManager = libraryManager; _mediaEncoder = mediaEncoder; ImageCache = new FileSystemRepository(Kernel.Instance.FFMpegManager.AudioImagesDataPath); diff --git a/MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs b/MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs index 512cef09c0..c048715c3e 100644 --- a/MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbImagesProvider.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Net; +using MediaBrowser.Common.Net; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; @@ -11,7 +10,6 @@ using MediaBrowser.Model.Serialization; using System; using System.Collections.Generic; using System.Globalization; -using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -39,24 +37,17 @@ namespace MediaBrowser.Providers.Movies private readonly IJsonSerializer _jsonSerializer; /// <summary> - /// The _HTTP client - /// </summary> - private readonly IHttpClient _httpClient; - - /// <summary> /// Initializes a new instance of the <see cref="MovieDbImagesProvider"/> class. /// </summary> /// <param name="logManager">The log manager.</param> /// <param name="configurationManager">The configuration manager.</param> /// <param name="providerManager">The provider manager.</param> /// <param name="jsonSerializer">The json serializer.</param> - /// <param name="httpClient">The HTTP client.</param> - public MovieDbImagesProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager, IJsonSerializer jsonSerializer, IHttpClient httpClient) + public MovieDbImagesProvider(ILogManager logManager, IServerConfigurationManager configurationManager, IProviderManager providerManager, IJsonSerializer jsonSerializer) : base(logManager, configurationManager) { _providerManager = providerManager; _jsonSerializer = jsonSerializer; - _httpClient = httpClient; } /// <summary> diff --git a/MediaBrowser.Providers/Music/LastfmAlbumProvider.cs b/MediaBrowser.Providers/Music/LastfmAlbumProvider.cs index e32bf23605..50a5ac8ed2 100644 --- a/MediaBrowser.Providers/Music/LastfmAlbumProvider.cs +++ b/MediaBrowser.Providers/Music/LastfmAlbumProvider.cs @@ -69,7 +69,9 @@ namespace MediaBrowser.Providers.Music protected override async Task FetchLastfmData(BaseItem item, string id, CancellationToken cancellationToken) { - var result = await GetAlbumResult(item, cancellationToken).ConfigureAwait(false); + var album = (MusicAlbum)item; + + var result = await GetAlbumResult(album, cancellationToken).ConfigureAwait(false); if (result != null && result.album != null) { @@ -83,15 +85,35 @@ namespace MediaBrowser.Providers.Music item.ProviderData[Id] = data; } - data.FileStamp = GetComparisonData(item as MusicAlbum); + data.FileStamp = GetComparisonData(album); } - private async Task<LastfmGetAlbumResult> GetAlbumResult(BaseItem item, CancellationToken cancellationToken) + private async Task<LastfmGetAlbumResult> GetAlbumResult(MusicAlbum item, CancellationToken cancellationToken) { - var folder = (Folder)item; + // Try album release Id + if (!string.IsNullOrEmpty(item.GetProviderId(MetadataProviders.Musicbrainz))) + { + var result = await GetAlbumResult(item.GetProviderId(MetadataProviders.Musicbrainz), cancellationToken).ConfigureAwait(false); + + if (result != null && result.album != null) + { + return result; + } + } + // Try album release group Id + if (!string.IsNullOrEmpty(item.GetProviderId(MetadataProviders.MusicBrainzReleaseGroup))) + { + var result = await GetAlbumResult(item.GetProviderId(MetadataProviders.MusicBrainzReleaseGroup), cancellationToken).ConfigureAwait(false); + + if (result != null && result.album != null) + { + return result; + } + } + // Get each song, distinct by the combination of AlbumArtist and Album - var songs = folder.RecursiveChildren.OfType<Audio>().DistinctBy(i => (i.AlbumArtist ?? string.Empty) + (i.Album ?? string.Empty), StringComparer.OrdinalIgnoreCase).ToList(); + var songs = item.RecursiveChildren.OfType<Audio>().DistinctBy(i => (i.AlbumArtist ?? string.Empty) + (i.Album ?? string.Empty), StringComparer.OrdinalIgnoreCase).ToList(); foreach (var song in songs.Where(song => !string.IsNullOrEmpty(song.Album) && !string.IsNullOrEmpty(song.AlbumArtist))) { @@ -124,6 +146,24 @@ namespace MediaBrowser.Providers.Music return JsonSerializer.DeserializeFromStream<LastfmGetAlbumResult>(json); } } + + private async Task<LastfmGetAlbumResult> GetAlbumResult(string musicbraizId, CancellationToken cancellationToken) + { + // Get albu info using artist and album name + var url = RootUrl + string.Format("method=album.getInfo&mbid={0}&api_key={1}&format=json", musicbraizId, ApiKey); + + using (var json = await HttpClient.Get(new HttpRequestOptions + { + Url = url, + ResourcePool = LastfmResourcePool, + CancellationToken = cancellationToken, + EnableHttpCompression = false + + }).ConfigureAwait(false)) + { + return JsonSerializer.DeserializeFromStream<LastfmGetAlbumResult>(json); + } + } protected override Task FetchData(BaseItem item, CancellationToken cancellationToken) { diff --git a/MediaBrowser.Providers/TV/FanArtSeasonProvider.cs b/MediaBrowser.Providers/TV/FanArtSeasonProvider.cs index 4999a845df..2104e449ae 100644 --- a/MediaBrowser.Providers/TV/FanArtSeasonProvider.cs +++ b/MediaBrowser.Providers/TV/FanArtSeasonProvider.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Common.Extensions; -using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; diff --git a/MediaBrowser.Providers/TV/TvdbSeriesImageProvider.cs b/MediaBrowser.Providers/TV/TvdbSeriesImageProvider.cs index 776cede8ef..2ac201a56b 100644 --- a/MediaBrowser.Providers/TV/TvdbSeriesImageProvider.cs +++ b/MediaBrowser.Providers/TV/TvdbSeriesImageProvider.cs @@ -1,5 +1,4 @@ -using MediaBrowser.Common.Extensions; -using MediaBrowser.Common.Net; +using MediaBrowser.Common.Net; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; |
