public static void UpdateGenreTV() { var dict = new Dictionary <string, List <RandomTV.Film> >(); foreach (var pair in Film.GenresConverts) { string[] order = new string[] { "YEAR", "RATING", "NUM_VOTE" }; var l = new List <RandomTV.Film>(); Random random = new Random(); while (true) { var client = new RestClient("https://kinopoiskapiunofficial.tech/api/v2.1/films/search-by-filters"); var request = new RestRequest(Method.GET); request.AddHeader("X-API-KEY", Bot._kp_key); request.AddQueryParameter("type", "TV_SHOW"); request.AddQueryParameter("order", order[random.Next(0, 2)]); request.AddQueryParameter("genre", pair.Value.ToString()); int filmYearBottomLine = random.Next(1950, DateTime.Now.Year - 20); int filmYearUpperLine = random.Next(filmYearBottomLine + 20, DateTime.Now.Year + 1); request.AddQueryParameter("yearFrom", filmYearBottomLine.ToString()); request.AddQueryParameter("yearTo", filmYearUpperLine.ToString()); IRestResponse response = client.Execute(request); RandomTV.Results results; try { results = JsonConvert.DeserializeObject <RandomTV.Results>(response.Content); } catch (Exception) { results = null; } if (results == null || results.films.Count == 0) { continue; } for (int i = 0; i < Math.Min(results.films.Count, 5); ++i) { var t = results.films[i]; string photoID2; t.VKPhotoID = Attachments.RandomTVPosterID(t, out photoID2); t.VKPhotoID_2 = photoID2; if (t.VKPhotoID == null || t.VKPhotoID_2 == null) { continue; } l.Add(t); } dict[pair.Key] = l; break; } } GenreTV = dict; }
/// <summary> /// Обновляет список популярных фильмов /// </summary> public static void UpdateRandomTV() { while (true) { Random random = new Random(); int filmYearBottomLine = random.Next(1950, DateTime.Now.Year - 5); string[] order = new string[] { "YEAR", "RATING", "NUM_VOTE" }; var client = new RestClient("https://kinopoiskapiunofficial.tech/api/v2.1/films/search-by-filters"); var request = new RestRequest(Method.GET); request.AddHeader("X-API-KEY", Bot._kp_key); request.AddQueryParameter("type", "TV_SHOW"); request.AddQueryParameter("order", order[random.Next(0, order.Length)]); request.AddQueryParameter("genre", Film.PopularGenres[random.Next(0, Film.PopularGenres.Length)].ToString()); request.AddQueryParameter("yearFrom", filmYearBottomLine.ToString()); IRestResponse response = client.Execute(request); List <RandomTV.Film> results; try { results = JsonConvert.DeserializeObject <RandomTV.Results>(response.Content).films; } catch (Exception) { results = null; } if (results == null || results.Count == 0) { continue; } var dict = new Dictionary <int, RandomTV.Film>(); for (int i = 0; i < results.Count; ++i) { string photoID2; results[i].VKPhotoID = Attachments.RandomTVPosterID(results[i], out photoID2); results[i].VKPhotoID_2 = photoID2; if (results[i].VKPhotoID == null || results[i].VKPhotoID_2 == null) { continue; } dict[results[i].filmId] = results[i]; } RandomTV = dict; return; } }