protected async Task <ApiWrapperImageCollection <FanArtMovieThumb> > GetAlbumFanArtAsync(AlbumInfo album) { if (album == null || string.IsNullOrEmpty(album.MusicBrainzDiscId)) { return(null); } // Download all image information, filter later! FanArtAlbumDetails albumDetails = await _fanArtTvHandler.GetAlbumThumbsAsync(album.MusicBrainzGroupId).ConfigureAwait(false); if (albumDetails == null || albumDetails.Albums == null) { return(null); } FanArtAlbumThumbs thumbs; if (!albumDetails.Albums.TryGetValue(album.MusicBrainzDiscId, out thumbs)) { return(null); } ApiWrapperImageCollection <FanArtMovieThumb> images = new ApiWrapperImageCollection <FanArtMovieThumb>(); images.Id = album.MusicBrainzDiscId; if (thumbs.AlbumCovers != null) { images.Covers.AddRange(SortByLikes(thumbs.AlbumCovers)); } if (thumbs.CDArts != null) { images.DiscArt.AddRange(SortByLikes(thumbs.CDArts)); } return(images); }
public override bool GetFanArt <T>(T infoObject, string language, string fanartMediaType, out ApiWrapperImageCollection <FanArtMovieThumb> images) { images = new ApiWrapperImageCollection <FanArtMovieThumb>(); try { if (fanartMediaType == FanArtMediaTypes.Movie) { FanArtMovieThumbs imgs = null; MovieInfo movie = infoObject as MovieInfo; if (movie != null && movie.MovieDbId > 0) { // Download all image information, filter later! imgs = _fanArtTvHandler.GetMovieThumbs(movie.MovieDbId.ToString()); } if (imgs != null) { images.Id = movie.MovieDbId.ToString(); if (imgs.MovieFanArt != null) { images.Backdrops.AddRange(imgs.MovieFanArt.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.MovieBanners != null) { images.Banners.AddRange(imgs.MovieBanners.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.MoviePosters != null) { images.Posters.AddRange(imgs.MoviePosters.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.MovieCDArt != null) { images.DiscArt.AddRange(imgs.MovieCDArt.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.HDMovieClearArt != null) { images.ClearArt.AddRange(imgs.HDMovieClearArt.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.HDMovieLogos != null) { images.Logos.AddRange(imgs.HDMovieLogos.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.MovieThumbnails != null) { images.Thumbnails.AddRange(imgs.MovieThumbnails.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } return(true); } } else if (fanartMediaType == FanArtMediaTypes.Series) { FanArtTVThumbs imgs = null; EpisodeInfo episode = infoObject as EpisodeInfo; SeasonInfo season = infoObject as SeasonInfo; SeriesInfo series = infoObject as SeriesInfo; if (series == null && season != null) { series = season.CloneBasicInstance <SeriesInfo>(); } if (series == null && episode != null) { series = episode.CloneBasicInstance <SeriesInfo>(); } if (series != null && series.TvdbId > 0) { // Download all image information, filter later! imgs = _fanArtTvHandler.GetSeriesThumbs(series.TvdbId.ToString()); } if (imgs != null) { images.Id = series.TvdbId.ToString(); if (imgs.SeriesFanArt != null) { images.Backdrops.AddRange(imgs.SeriesFanArt.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.SeriesBanners != null) { images.Banners.AddRange(imgs.SeriesBanners.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.SeriesPosters != null) { images.Posters.AddRange(imgs.SeriesPosters.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.HDSeriesClearArt != null) { images.ClearArt.AddRange(imgs.HDSeriesClearArt.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.HDSeriesLogos != null) { images.Logos.AddRange(imgs.HDSeriesLogos.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.SeriesThumbnails != null) { images.Thumbnails.AddRange(imgs.SeriesThumbnails.OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } return(true); } } else if (fanartMediaType == FanArtMediaTypes.SeriesSeason) { FanArtTVThumbs imgs = null; int seasonNo = 0; EpisodeInfo episode = infoObject as EpisodeInfo; SeasonInfo season = infoObject as SeasonInfo; if (season == null && episode != null) { season = episode.CloneBasicInstance <SeasonInfo>(); } if (season != null && season.SeriesTvdbId > 0 && season.SeasonNumber.HasValue) { // Download all image information, filter later! imgs = _fanArtTvHandler.GetSeriesThumbs(season.SeriesTvdbId.ToString()); seasonNo = season.SeasonNumber.Value; } if (imgs != null) { images.Id = season.SeriesTvdbId.ToString(); if (imgs.SeasonBanners != null) { images.Banners.AddRange(imgs.SeasonBanners.FindAll(b => !b.Season.HasValue || b.Season == seasonNo). OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.SeasonPosters != null) { images.Posters.AddRange(imgs.SeasonPosters.FindAll(b => !b.Season.HasValue || b.Season == seasonNo). OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } if (imgs.SeasonThumbnails != null) { images.Thumbnails.AddRange(imgs.SeasonThumbnails.FindAll(b => !b.Season.HasValue || b.Season == seasonNo). OrderBy(b => string.IsNullOrEmpty(b.Language)).ThenByDescending(b => b.Likes).ToList()); } return(true); } } else if (fanartMediaType == FanArtMediaTypes.Artist) { FanArtArtistThumbs imgs = null; PersonInfo person = infoObject as PersonInfo; if (person != null && !string.IsNullOrEmpty(person.MusicBrainzId)) { // Download all image information, filter later! imgs = _fanArtTvHandler.GetArtistThumbs(person.MusicBrainzId); } if (imgs != null) { images.Id = person.MusicBrainzId; if (imgs.ArtistFanart != null) { images.Backdrops.AddRange(imgs.ArtistFanart.OrderByDescending(b => b.Likes).Select(b => new FanArtMovieThumb(b)).ToList()); } if (imgs.ArtistBanners != null) { images.Banners.AddRange(imgs.ArtistBanners.OrderByDescending(b => b.Likes).Select(b => new FanArtMovieThumb(b)).ToList()); } if (imgs.HDArtistLogos != null) { images.Logos.AddRange(imgs.HDArtistLogos.OrderByDescending(b => b.Likes).Select(b => new FanArtMovieThumb(b)).ToList()); } if (imgs.ArtistThumbnails != null) { images.Thumbnails.AddRange(imgs.ArtistThumbnails.OrderByDescending(b => b.Likes).Select(b => new FanArtMovieThumb(b)).ToList()); } return(true); } } else if (fanartMediaType == FanArtMediaTypes.MusicLabel) { FanArtLabelThumbs imgs = null; CompanyInfo company = infoObject as CompanyInfo; if (company != null && !string.IsNullOrEmpty(company.MusicBrainzId)) { // Download all image information, filter later! imgs = _fanArtTvHandler.GetLabelThumbs(company.MusicBrainzId); } if (imgs != null) { images.Id = company.MusicBrainzId; if (imgs.LabelLogos != null) { images.Logos.AddRange(imgs.LabelLogos.OrderByDescending(b => b.Likes).Select(b => new FanArtMovieThumb(b)).ToList()); } return(true); } } else if (fanartMediaType == FanArtMediaTypes.Album) { FanArtAlbumDetails imgs = null; string albumId = null; TrackInfo track = infoObject as TrackInfo; AlbumInfo album = infoObject as AlbumInfo; if (album == null && track != null) { album = track.CloneBasicInstance <AlbumInfo>(); } if (album != null && !string.IsNullOrEmpty(album.MusicBrainzGroupId)) { // Download all image information, filter later! imgs = _fanArtTvHandler.GetAlbumThumbs(album.MusicBrainzGroupId); albumId = album.MusicBrainzGroupId; } if (imgs != null) { images.Id = albumId; if (imgs.Albums != null && imgs.Albums.ContainsKey(albumId) && imgs.Albums[albumId].AlbumCovers != null) { images.Covers.AddRange(imgs.Albums[albumId].AlbumCovers.OrderByDescending(b => b.Likes).Select(b => new FanArtMovieThumb(b)).ToList()); } if (imgs.Albums != null && imgs.Albums.ContainsKey(albumId) && imgs.Albums[albumId].CDArts != null) { images.DiscArt.AddRange(imgs.Albums[albumId].CDArts.OrderByDescending(b => b.Likes).Select(b => new FanArtMovieThumb(b)).ToList()); } return(true); } } else { return(true); } } catch (Exception ex) { ServiceRegistration.Get <ILogger>().Debug(GetType().Name + ": Exception downloading images", ex); } return(false); }