diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-10 08:52:01 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-10 08:52:01 -0500 |
| commit | ec4000404d59ee0e8342805cf7ce0c4ca04023b4 (patch) | |
| tree | dc25abe9fa806b9f676af95ad61b9ac612f252f8 /MediaBrowser.Providers | |
| parent | c23bd68220fc01a6ccd1436fde91c51e473e1ae8 (diff) | |
rework text subtitles
Diffstat (limited to 'MediaBrowser.Providers')
5 files changed, 41 insertions, 14 deletions
diff --git a/MediaBrowser.Providers/Movies/ManualMovieDbImageProvider.cs b/MediaBrowser.Providers/Movies/ManualMovieDbImageProvider.cs index b9cabded7d..21e50f4001 100644 --- a/MediaBrowser.Providers/Movies/ManualMovieDbImageProvider.cs +++ b/MediaBrowser.Providers/Movies/ManualMovieDbImageProvider.cs @@ -51,7 +51,7 @@ namespace MediaBrowser.Providers.Movies { var list = new List<RemoteImageInfo>(); - var results = FetchImages(item, _jsonSerializer); + var results = await FetchImages((BaseItem)item, _jsonSerializer, cancellationToken).ConfigureAwait(false); if (results == null) { @@ -62,7 +62,7 @@ namespace MediaBrowser.Providers.Movies var tmdbImageUrl = tmdbSettings.images.base_url + "original"; - list.AddRange(GetPosters(results, item).Select(i => new RemoteImageInfo + list.AddRange(GetPosters(results).Select(i => new RemoteImageInfo { Url = tmdbImageUrl + i.file_path, CommunityRating = i.vote_average, @@ -75,7 +75,7 @@ namespace MediaBrowser.Providers.Movies RatingType = RatingType.Score })); - list.AddRange(GetBackdrops(results, item).Select(i => new RemoteImageInfo + list.AddRange(GetBackdrops(results).Select(i => new RemoteImageInfo { Url = tmdbImageUrl + i.file_path, CommunityRating = i.vote_average, @@ -119,9 +119,8 @@ namespace MediaBrowser.Providers.Movies /// Gets the posters. /// </summary> /// <param name="images">The images.</param> - /// <param name="item">The item.</param> /// <returns>IEnumerable{MovieDbProvider.Poster}.</returns> - private IEnumerable<MovieDbProvider.Poster> GetPosters(MovieDbProvider.Images images, IHasImages item) + private IEnumerable<MovieDbProvider.Poster> GetPosters(MovieDbProvider.Images images) { return images.posters ?? new List<MovieDbProvider.Poster>(); } @@ -130,9 +129,8 @@ namespace MediaBrowser.Providers.Movies /// Gets the backdrops. /// </summary> /// <param name="images">The images.</param> - /// <param name="item">The item.</param> /// <returns>IEnumerable{MovieDbProvider.Backdrop}.</returns> - private IEnumerable<MovieDbProvider.Backdrop> GetBackdrops(MovieDbProvider.Images images, IHasImages item) + private IEnumerable<MovieDbProvider.Backdrop> GetBackdrops(MovieDbProvider.Images images) { var eligibleBackdrops = images.backdrops == null ? new List<MovieDbProvider.Backdrop>() : images.backdrops @@ -147,10 +145,14 @@ namespace MediaBrowser.Providers.Movies /// </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 MovieDbProvider.Images FetchImages(IHasImages item, IJsonSerializer jsonSerializer) + private async Task<MovieDbProvider.Images> FetchImages(BaseItem item, IJsonSerializer jsonSerializer, + CancellationToken cancellationToken) { - var path = MovieDbProvider.Current.GetDataFilePath((BaseItem)item); + await MovieDbProvider.Current.EnsureMovieInfo(item, cancellationToken).ConfigureAwait(false); + + var path = MovieDbProvider.Current.GetDataFilePath(item); if (!string.IsNullOrEmpty(path)) { diff --git a/MediaBrowser.Providers/Movies/ManualMovieDbPersonImageProvider.cs b/MediaBrowser.Providers/Movies/ManualMovieDbPersonImageProvider.cs index 453284751c..4d3a5baac1 100644 --- a/MediaBrowser.Providers/Movies/ManualMovieDbPersonImageProvider.cs +++ b/MediaBrowser.Providers/Movies/ManualMovieDbPersonImageProvider.cs @@ -52,7 +52,7 @@ namespace MediaBrowser.Providers.Movies if (!string.IsNullOrEmpty(id)) { - await MovieDbPersonProvider.Current.DownloadPersonInfoIfNeeded(id, cancellationToken).ConfigureAwait(false); + await MovieDbPersonProvider.Current.EnsurePersonInfo(id, cancellationToken).ConfigureAwait(false); var dataFilePath = MovieDbPersonProvider.GetPersonDataFilePath(_config.ApplicationPaths, id); diff --git a/MediaBrowser.Providers/Movies/MovieDbPersonProvider.cs b/MediaBrowser.Providers/Movies/MovieDbPersonProvider.cs index c16c504125..70ad6611a1 100644 --- a/MediaBrowser.Providers/Movies/MovieDbPersonProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbPersonProvider.cs @@ -235,7 +235,7 @@ namespace MediaBrowser.Providers.Movies /// <returns>Task.</returns> private async Task FetchInfo(Person person, string id, bool isForcedRefresh, CancellationToken cancellationToken) { - await DownloadPersonInfoIfNeeded(id, cancellationToken).ConfigureAwait(false); + await EnsurePersonInfo(id, cancellationToken).ConfigureAwait(false); if (isForcedRefresh || !HasAltMeta(person)) { @@ -249,7 +249,7 @@ namespace MediaBrowser.Providers.Movies } } - internal async Task DownloadPersonInfoIfNeeded(string id, CancellationToken cancellationToken) + internal async Task EnsurePersonInfo(string id, CancellationToken cancellationToken) { var personDataPath = GetPersonDataPath(ConfigurationManager.ApplicationPaths, id); diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index fed1b444e8..8dd64fd14c 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -558,6 +558,31 @@ namespace MediaBrowser.Providers.Movies JsonSerializer.SerializeToFile(mainResult, dataFilePath); } + internal Task EnsureMovieInfo(BaseItem item, CancellationToken cancellationToken) + { + var path = GetDataFilePath(item); + + var fileInfo = _fileSystem.GetFileSystemInfo(path); + + if (fileInfo.Exists) + { + // If it's recent or automatic updates are enabled, don't re-download + if (ConfigurationManager.Configuration.EnableTmdbUpdates || (DateTime.UtcNow - _fileSystem.GetLastWriteTimeUtc(fileInfo)).TotalDays <= 7) + { + return Task.FromResult(true); + } + } + + var id = item.GetProviderId(MetadataProviders.Tmdb); + + if (string.IsNullOrEmpty(id)) + { + return Task.FromResult(true); + } + + return DownloadMovieInfo(id, item is BoxSet, item.GetPreferredMetadataLanguage(), cancellationToken); + } + /// <summary> /// Gets the data file path. /// </summary> @@ -575,7 +600,7 @@ namespace MediaBrowser.Providers.Movies return GetDataFilePath(item is BoxSet, id, item.GetPreferredMetadataLanguage()); } - internal string GetDataFilePath(bool isBoxset, string tmdbId, string preferredLanguage) + private string GetDataFilePath(bool isBoxset, string tmdbId, string preferredLanguage) { var path = GetMovieDataPath(ConfigurationManager.ApplicationPaths, isBoxset, tmdbId); diff --git a/MediaBrowser.Providers/Movies/MovieUpdatesPrescanTask.cs b/MediaBrowser.Providers/Movies/MovieUpdatesPrescanTask.cs index 291d2ff4dd..d9a367e2cc 100644 --- a/MediaBrowser.Providers/Movies/MovieUpdatesPrescanTask.cs +++ b/MediaBrowser.Providers/Movies/MovieUpdatesPrescanTask.cs @@ -69,7 +69,7 @@ namespace MediaBrowser.Providers.Movies /// <returns>Task.</returns> public async Task Run(IProgress<double> progress, CancellationToken cancellationToken) { - if (!_config.Configuration.EnableInternetProviders) + if (!_config.Configuration.EnableInternetProviders && !_config.Configuration.EnableTmdbUpdates) { progress.Report(100); return; |
