public async Task <string> GetMoviePoster(string movieDbId) { var key = await _cache.GetOrAdd(CacheKeys.FanartTv, async() => await Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTime.Now.AddDays(1)); var images = await FanartTvApi.GetMovieImages(movieDbId, key.Value); if (images == null) { return(string.Empty); } if (images.movieposter?.Any() ?? false) { var enImage = images.movieposter.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); if (enImage == null) { return(images.movieposter.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault()); } return(enImage); } if (images.moviethumb?.Any() ?? false) { return(images.moviethumb.OrderBy(x => x.likes).Select(x => x.url).FirstOrDefault()); } 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> GetRandomPoster() { var key = await _cache.GetOrAdd(CacheKeys.FanartTv, async() => await Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTime.Now.AddDays(1)); var rand = new Random(); var val = rand.Next(1, 3); if (val == 1) { var movies = (await _movieEngineV2.PopularMovies(0, 10, HttpContext.RequestAborted, "en")).ToArray(); var selectedMovieIndex = rand.Next(movies.Count()); var movie = movies[selectedMovieIndex]; var images = await _cache.GetOrAdd($"{CacheKeys.FanartTv}movie{movie.Id}", async() => await FanartTvApi.GetMovieImages(movie.Id.ToString(), key.Value), DateTime.Now.AddDays(1)); if (images == null) { return(string.Empty); } if (images.movieposter?.Any() ?? false) { var enImage = images.movieposter.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); if (enImage == null) { return(images.movieposter.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault()); } return(enImage); } if (images.moviethumb?.Any() ?? false) { return(images.moviethumb.OrderBy(x => x.likes).Select(x => x.url).FirstOrDefault()); } } else { var tv = (await _tvSearchEngineV2.Popular(0, 10, "en")).ToArray(); var selectedMovieIndex = rand.Next(tv.Count()); var selected = tv[selectedMovieIndex]; return($"https://image.tmdb.org/t/p/original{selected.BackdropPath}"); } return(""); }
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> GetMovieBanner(string movieDbId) { var key = await _cache.GetOrAddAsync(CacheKeys.FanartTv, () => Config.GetAsync(Store.Entities.ConfigurationTypes.FanartTv), DateTimeOffset.Now.AddDays(1)); var images = await _cache.GetOrAddAsync($"{CacheKeys.FanartTv}movie{movieDbId}", () => FanartTvApi.GetMovieImages(movieDbId, key.Value), DateTimeOffset.Now.AddDays(1)); if (images == null) { return(string.Empty); } if (images.moviebackground?.Any() ?? false) { var enImage = images.moviebackground.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); if (enImage == null) { return(images.moviebackground.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault()); } return(enImage); } return(string.Empty); }