/// <summary> /// Fetches the images. /// </summary> /// <param name="season">The season.</param> /// <param name="images">The images.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> private async Task FetchImages(Season season, XmlDocument images, CancellationToken cancellationToken) { var seasonNumber = season.IndexNumber ?? -1; if (seasonNumber == -1) { return; } if (!season.HasImage(ImageType.Primary)) { var n = images.SelectSingleNode("//Banner[BannerType='season'][BannerType2='season'][Season='" + seasonNumber + "'][Language='" + ConfigurationManager.Configuration.PreferredMetadataLanguage + "']") ?? images.SelectSingleNode("//Banner[BannerType='season'][BannerType2='season'][Season='" + seasonNumber + "'][Language='en']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { var url = TVUtils.BannerUrl + n.InnerText; await _providerManager.SaveImage(season, url, RemoteSeriesProvider.Current.TvDbResourcePool, ImageType.Primary, null, cancellationToken) .ConfigureAwait(false); } } } if (ConfigurationManager.Configuration.DownloadSeasonImages.Banner && !season.HasImage(ImageType.Banner)) { var n = images.SelectSingleNode("//Banner[BannerType='season'][BannerType2='seasonwide'][Season='" + seasonNumber + "'][Language='" + ConfigurationManager.Configuration.PreferredMetadataLanguage + "']") ?? images.SelectSingleNode("//Banner[BannerType='season'][BannerType2='seasonwide'][Season='" + seasonNumber + "'][Language='en']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { try { var url = TVUtils.BannerUrl + n.InnerText; await _providerManager.SaveImage(season, url, RemoteSeriesProvider.Current.TvDbResourcePool, ImageType.Banner, null, cancellationToken) .ConfigureAwait(false); } catch (HttpException ex) { Logger.ErrorException("Error downloading season banner for {0}", ex, season.Path); // Sometimes banners will come up not found even though they're reported in tvdb xml if (ex.StatusCode.HasValue && ex.StatusCode.Value != HttpStatusCode.NotFound) { throw; } } } } } if (ConfigurationManager.Configuration.DownloadSeasonImages.Backdrops && season.BackdropImagePaths.Count == 0) { var n = images.SelectSingleNode("//Banner[BannerType='fanart'][Season='" + seasonNumber + "']"); if (n != null) { n = n.SelectSingleNode("./BannerPath"); if (n != null) { var url = TVUtils.BannerUrl + n.InnerText; await _providerManager.SaveImage(season, url, RemoteSeriesProvider.Current.TvDbResourcePool, ImageType.Backdrop, 0, cancellationToken) .ConfigureAwait(false); } } } }
/// <summary> /// Fetches the images. /// </summary> /// <param name="season">The season.</param> /// <param name="images">The images.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> private async Task FetchImages(Season season, List<RemoteImageInfo> images, CancellationToken cancellationToken) { if (ConfigurationManager.Configuration.DownloadSeasonImages.Thumb && !season.HasImage(ImageType.Thumb) && !season.LockedFields.Contains(MetadataFields.Images)) { await SaveImage(season, images, ImageType.Thumb, cancellationToken).ConfigureAwait(false); } }
/// <summary> /// Fetches the images. /// </summary> /// <param name="season">The season.</param> /// <param name="doc">The doc.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> private async Task FetchImages(Season season, XmlDocument doc, CancellationToken cancellationToken) { var seasonNumber = season.IndexNumber ?? -1; if (seasonNumber == -1) { return; } var language = ConfigurationManager.Configuration.PreferredMetadataLanguage.ToLower(); if (ConfigurationManager.Configuration.DownloadSeasonImages.Thumb && !season.HasImage(ImageType.Thumb)) { var node = doc.SelectSingleNode("//fanart/series/seasonthumbs/seasonthumb[@lang = \"" + language + "\"][@season = \"" + seasonNumber + "\"]/@url") ?? doc.SelectSingleNode("//fanart/series/seasonthumbs/seasonthumb[@season = \"" + seasonNumber + "\"]/@url"); var path = node != null ? node.Value : null; if (!string.IsNullOrEmpty(path)) { season.SetImage(ImageType.Thumb, await _providerManager.DownloadAndSaveImage(season, path, ThumbFile, ConfigurationManager.Configuration.SaveLocalMeta, FanArtResourcePool, cancellationToken).ConfigureAwait(false)); } } }
/// <summary> /// Fetches the images. /// </summary> /// <param name="season">The season.</param> /// <param name="images">The images.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> private async Task FetchImages(Season season, List<RemoteImageInfo> images, CancellationToken cancellationToken) { if (ConfigurationManager.Configuration.DownloadSeasonImages.Thumb && !season.HasImage(ImageType.Thumb)) { var image = images.FirstOrDefault(i => i.Type == ImageType.Thumb); if (image != null) { await _providerManager.SaveImage(season, image.Url, FanArtResourcePool, ImageType.Thumb, null, cancellationToken).ConfigureAwait(false); } } }