public async Task <string> GetTvBackground(int tvdbid) { if (tvdbid <= 0) { return(string.Empty); } var key = await _cache.GetOrAdd(CacheKeys.FanartTv, async() => await Config.Get(Store.Entities.ConfigurationTypes.FanartTv), DateTime.Now.AddDays(1)); var images = await FanartTvApi.GetTvImages(tvdbid, key.Value); if (images == null) { return(string.Empty); } if (images.showbackground?.Any() ?? false) { var enImage = images.showbackground.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); if (enImage == null) { return(images.showbackground.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault()); } return(enImage); } return(string.Empty); }
public async Task <object> GetBackgroundImage() { var moviesArray = Options.Movies; var tvArray = Options.TvShows; var rand = new Random(); var movieUrl = string.Empty; var tvUrl = string.Empty; var key = await _cache.GetOrAdd(CacheKeys.FanartTv, async() => await Config.Get(Store.Entities.ConfigurationTypes.FanartTv), DateTime.Now.AddDays(1)); if (moviesArray.Any()) { var item = rand.Next(moviesArray.Length); var result = await FanartTvApi.GetMovieImages(moviesArray[item].ToString(), key.Value); while (!result.moviebackground.Any()) { result = await FanartTvApi.GetMovieImages(moviesArray[item].ToString(), key.Value); } movieUrl = result.moviebackground[0].url; } if (tvArray.Any()) { var item = rand.Next(tvArray.Length); var result = await FanartTvApi.GetTvImages(tvArray[item], key.Value); while (!result.showbackground.Any()) { result = await FanartTvApi.GetTvImages(tvArray[item], key.Value); } tvUrl = result.showbackground[0].url; } if (!string.IsNullOrEmpty(movieUrl) && !string.IsNullOrEmpty(tvUrl)) { var result = rand.Next(2); if (result == 0) { return new { url = movieUrl } } ; if (result == 1) { return new { url = tvUrl } } ; } if (!string.IsNullOrEmpty(movieUrl)) { return(new { url = movieUrl }); } return(new { url = tvUrl }); } } }
public async Task <string> GetTvBanner(int tvdbid) { var key = await _cache.GetOrAdd(CacheKeys.FanartTv, async() => await Config.Get(Store.Entities.ConfigurationTypes.FanartTv), DateTime.Now.AddDays(1)); var images = await FanartTvApi.GetTvImages(tvdbid, key.Value); if (images == null) { return(string.Empty); } if (images.tvbanner != null) { var enImage = images.tvbanner.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); if (enImage == null) { return(images.tvbanner.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault()); } } if (images.seasonposter != null) { return(images.seasonposter.FirstOrDefault()?.url ?? string.Empty); } return(string.Empty); }
public async Task <object> GetBackgroundImage() { var moviesArray = Options.Movies ?? new int[0]; var tvArray = Options.TvShows ?? new int[0]; var rand = new Random(); var movieUrl = string.Empty; var tvUrl = string.Empty; var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1)); if (moviesArray.Length > 0) { var item = rand.Next(moviesArray.Length); var result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{moviesArray[item]}", () => FanartTvApi.GetMovieImages(moviesArray[item].ToString(), key.Value), DateTimeOffset.Now.AddDays(1)); while (!result.moviebackground?.Any() ?? true) { item = rand.Next(moviesArray.Length); result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{moviesArray[item]}", () => FanartTvApi.GetMovieImages(moviesArray[item].ToString(), key.Value), DateTimeOffset.Now.AddDays(1)); } var otherRand = new Random(); var res = otherRand.Next(result.moviebackground.Length); movieUrl = result.moviebackground[res].url; } if (tvArray.Length > 0) { var item = rand.Next(tvArray.Length); var result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvArray[item]}", () => FanartTvApi.GetTvImages(tvArray[item], key.Value), DateTimeOffset.Now.AddDays(1)); while (!result.showbackground?.Any() ?? true) { item = rand.Next(tvArray.Length); result = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvArray[item]}", () => FanartTvApi.GetTvImages(tvArray[item], key.Value), DateTimeOffset.Now.AddDays(1)); } var otherRand = new Random(); var res = otherRand.Next(result.showbackground.Length); tvUrl = result.showbackground[res].url; } if (!string.IsNullOrEmpty(movieUrl) && !string.IsNullOrEmpty(tvUrl)) { var result = rand.Next(2); if (result == 0) { return new { url = movieUrl } } ; if (result == 1) { return new { url = tvUrl } } ; } if (!string.IsNullOrEmpty(movieUrl)) { return(new { url = movieUrl }); } return(new { url = tvUrl }); } } }
public async Task <string> GetTvPoster(int tvdbid) { if (tvdbid <= 0) { return(string.Empty); } var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1)); var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}tv{tvdbid}", () => FanartTvApi.GetTvImages(tvdbid, key.Value), DateTimeOffset.Now.AddDays(1)); if (images == null) { return(string.Empty); } if (images.tvposter?.Any() ?? false) { var enImage = images.tvposter.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); if (enImage == null) { return(images.tvposter.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault()); } return(enImage); } if (images.tvthumb?.Any() ?? false) { return(images.tvthumb.OrderBy(x => x.likes).Select(x => x.url).FirstOrDefault()); } return(string.Empty); }