diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-30 23:50:09 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-30 23:50:09 -0500 |
| commit | 9685b81db5b975f57739a9dcc6c2cdb6c4c4dbcf (patch) | |
| tree | e9046e6d8e3df2f205b48fbcd9389bdb18290b55 /MediaBrowser.Providers/BoxSets | |
| parent | 117c1b76b2f7a09024f308b1aa692a1e5282d1c5 (diff) | |
convert artist providers
Diffstat (limited to 'MediaBrowser.Providers/BoxSets')
| -rw-r--r-- | MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs | 39 | ||||
| -rw-r--r-- | MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs | 45 |
2 files changed, 45 insertions, 39 deletions
diff --git a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs index 62b2e627f3..b9b4e40d7a 100644 --- a/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs +++ b/MediaBrowser.Providers/BoxSets/BoxSetMetadataService.cs @@ -1,11 +1,15 @@ using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities.Movies; +using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Localization; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using MediaBrowser.Providers.Manager; +using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Threading.Tasks; @@ -14,11 +18,13 @@ namespace MediaBrowser.Providers.BoxSets public class BoxSetMetadataService : ConcreteMetadataService<BoxSet> { private readonly ILibraryManager _libraryManager; + private readonly ILocalizationManager _iLocalizationManager; - public BoxSetMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IProviderRepository providerRepo, ILibraryManager libraryManager) + public BoxSetMetadataService(IServerConfigurationManager serverConfigurationManager, ILogger logger, IProviderManager providerManager, IProviderRepository providerRepo, ILibraryManager libraryManager, ILocalizationManager iLocalizationManager) : base(serverConfigurationManager, logger, providerManager, providerRepo) { _libraryManager = libraryManager; + _iLocalizationManager = iLocalizationManager; } /// <summary> @@ -37,5 +43,36 @@ namespace MediaBrowser.Providers.BoxSets { return _libraryManager.UpdateItem(item, reason, cancellationToken); } + + protected override ItemUpdateType AfterMetadataRefresh(BoxSet item) + { + var updateType = base.AfterMetadataRefresh(item); + + if (!item.LockedFields.Contains(MetadataFields.OfficialRating)) + { + var currentOfficialRating = item.OfficialRating; + + // Gather all possible ratings + var ratings = item.RecursiveChildren + .Concat(item.GetLinkedChildren()) + .Where(i => i is Movie || i is Series) + .Select(i => i.OfficialRating) + .Where(i => !string.IsNullOrEmpty(i)) + .Distinct(StringComparer.OrdinalIgnoreCase) + .Select(i => new Tuple<string, int?>(i, _iLocalizationManager.GetRatingLevel(i))) + .OrderBy(i => i.Item2 ?? 1000) + .Select(i => i.Item1); + + item.OfficialRating = ratings.FirstOrDefault() ?? item.OfficialRating; + + if (!string.Equals(currentOfficialRating ?? string.Empty, item.OfficialRating ?? string.Empty, + StringComparison.OrdinalIgnoreCase)) + { + updateType = updateType | ItemUpdateType.MetadataDownload; + } + } + + return updateType; + } } } diff --git a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs index 961982bfdd..2e75a66cb9 100644 --- a/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs +++ b/MediaBrowser.Providers/BoxSets/MovieDbBoxSetImageProvider.cs @@ -1,29 +1,25 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using MediaBrowser.Common.Net; +using MediaBrowser.Common.Net; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Providers; -using MediaBrowser.Model.Serialization; using MediaBrowser.Providers.Movies; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; namespace MediaBrowser.Providers.BoxSets { class MovieDbBoxSetImageProvider : IRemoteImageProvider { - private readonly IJsonSerializer _jsonSerializer; private readonly IHttpClient _httpClient; - public MovieDbBoxSetImageProvider(IJsonSerializer jsonSerializer, IHttpClient httpClient) + public MovieDbBoxSetImageProvider(IHttpClient httpClient) { - _jsonSerializer = jsonSerializer; _httpClient = httpClient; } @@ -163,33 +159,6 @@ namespace MediaBrowser.Providers.BoxSets .ThenByDescending(i => i.vote_count); } - /// <summary> - /// Fetches the images. - /// </summary> - /// <param name="item">The item.</param> - /// <param name="jsonSerializer">The json serializer.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task{MovieImages}.</returns> - private async Task<MovieDbProvider.Images> FetchImages(BaseItem item, IJsonSerializer jsonSerializer, - CancellationToken cancellationToken) - { - await MovieDbProvider.Current.EnsureMovieInfo(item, cancellationToken).ConfigureAwait(false); - - var path = MovieDbProvider.Current.GetDataFilePath(item); - - if (!string.IsNullOrEmpty(path)) - { - var fileInfo = new FileInfo(path); - - if (fileInfo.Exists) - { - return jsonSerializer.DeserializeFromFile<MovieDbProvider.CompleteMovieData>(path).images; - } - } - - return null; - } - public int Order { get { return 0; } |
