public static string FullInfo(User user, int TVID, out MessageKeyboard keyboard, out List <MediaAttachment> attachments) { Video trailer = null; var t = new Task(() => GetTrailer(TVID, ref trailer)); t.Start(); var client = new RestClient("https://kinopoiskapiunofficial.tech/api/v2.1/films/" + TVID.ToString()); var request = new RestRequest(Method.GET); request.AddHeader("X-API-KEY", Bot._kp_key); request.AddQueryParameter("append_to_response", "RATING"); IRestResponse response = client.Execute(request); TVObject film; try { film = JsonConvert.DeserializeObject <TVObject>(response.Content); } catch (Exception) { keyboard = null; attachments = null; return("При загрузке информации о сериале что-то произошло... 😔 Попробуй повторно выполнить запрос"); } if (film.data.nameEn != null) { user.AddTVSoundtrackAsync(film.data.nameEn, "series"); } else { user.AddTVSoundtrackAsync(film.data.nameRu, "сериал"); } var poster = Attachments.PosterObject(user, film.data.posterUrl, film.data.filmId.ToString()); t.Wait(); attachments = new List <MediaAttachment> { poster }; if (trailer != null) { attachments.Add(trailer); } if (film.data.nameEn != null && film.data.nameEn != string.Empty) { user.AddTVSoundtrackAsync(film.data.nameEn, "ost"); } else { user.AddTVSoundtrackAsync(film.data.nameRu, "саундтрек"); } keyboard = Keyboards.TVSearch(film.data.nameRu, film.data.nameEn, film.data.filmId.ToString(), string.Join("*", film.data.genres.Select(g => g.genre)), film.data.premiereRu); return(FullInfo(film)); }
public void createPostersFacts(User user, string filmID) { IsTrailer = false; var client1 = new RestClient("https://kinopoiskapiunofficial.tech/api/v2.1/films/" + filmID); var request1 = new RestRequest(Method.GET); request1.AddHeader("X-API-KEY", Bot._kp_key); IRestResponse response1 = client1.Execute(request1); Film.FilmObject film; try { film = JsonConvert.DeserializeObject <Film.FilmObject>(response1.Content); } catch (Exception) { film = null; } if (film != null) { var name = film.data.nameRu ?? film.data.nameEn; var year = film.data.year; var client2 = new RestClient($"https://kinopoiskapiunofficial.tech/api/v2.1/films/{filmID}/frames"); var request2 = new RestRequest(Method.GET); request2.AddHeader("X-API-KEY", Bot._kp_key); IRestResponse response2 = client2.Execute(request2); Frames frames; try { frames = JsonConvert.DeserializeObject <Frames>(response2.Content); } catch (Exception) { frames = null; } if (frames != null && frames.frames != null && frames.frames.Count != 0) { var posters = new List <Photo>(); IEnumerable <string> links = frames.frames.Select(f => f.image).Shuffle().Take(Math.Min(5, frames.frames.Count)); foreach (var link in links) { if (Attachments.PosterObject(user, link, filmID, out Photo photo)) { posters.Add(photo); } } if (posters.Count != 0) { Posters = posters; IsValid = true; } else { return; } } else { return; } if (film.data.facts.Count != 0) { Facts = film.data.facts.Shuffle().Take(Math.Min(3, film.data.facts.Count)).ToList(); } var soundtrack = new List <Audio>(); if (film.data.type == "FILM") { string fname, addition; if (film.data.nameEn != null && film.data.nameEn != string.Empty) { fname = film.data.nameEn; addition = "ost"; } else { fname = film.data.nameRu; addition = "саундтрек"; } //addition = year; Film.Methods.DownloadSoundtrack(fname, addition, soundtrack, 2); } else if (film.data.type == "TV_SHOW") { string fname, addition; if (film.data.nameEn != null && film.data.nameEn != string.Empty) { fname = film.data.nameEn; addition = "ost"; } else { fname = film.data.nameRu; addition = "саундтрек"; } //addition = year; TV.Methods.DownloadSoundtrack(fname, addition, soundtrack, 2); } id = filmID; Name = name; Year = year; SoundTrack = soundtrack; } }
public void createPostersFacts(Film.FilmObject film) { IsTrailer = false; var name = film.data.nameRu ?? film.data.nameEn; var year = film.data.year; var client2 = new RestClient($"https://kinopoiskapiunofficial.tech/api/v2.1/films/{film.data.filmId}/frames"); var request2 = new RestRequest(Method.GET); request2.AddHeader("X-API-KEY", Bot._kp_key); IRestResponse response2 = client2.Execute(request2); Frames frames; try { frames = JsonConvert.DeserializeObject <Frames>(response2.Content); } catch (Exception) { frames = null; } if (frames != null && frames.frames != null && frames.frames.Count != 0) { var posters = new List <string>(); IEnumerable <string> links = frames.frames.Select(f => f.image).Shuffle().Take(Math.Min(5, frames.frames.Count)); foreach (var link in links) { var id = Attachments.PosterObject(link, film.data.filmId.ToString()); if (id != null) { posters.Add(id); } } if (posters.Count != 0) { PostersIds = posters; IsValid = true; } else { return; } } else { return; } if (film.data.facts.Count != 0) { Facts = film.data.facts.Shuffle().Take(Math.Min(3, film.data.facts.Count)).ToList(); } /*var soundtrack = new List<Audio>(); * if (film.data.type == "FILM") * { * string fname, addition; * if (film.data.nameEn != null) * { * fname = film.data.nameEn; * //addition = "ost"; * } * else * { * fname = film.data.nameRu; * //addition = "саундтрек"; * } * addition = year; * Film.Methods.DownloadSoundtrack(fname, addition, soundtrack, 2); * } * else if (film.data.type == "TV_SHOW") * { * string fname, addition; * if (film.data.nameEn != null) * { * fname = film.data.nameEn; * addition = "series"; * } * else * { * fname = film.data.nameRu; * addition = "сериал"; * } * TV.Methods.DownloadSoundtrack(fname, addition, soundtrack, 2); * }*/ id = film.data.filmId.ToString(); Name = name; Year = year; SoundTrack = null; }
/*public static MessageTemplate ActorMessage(string filmID) * { * var proverka = Film.Methods.Actors(filmID); * if (proverka != null) * return Keyboards.ActorResultsTV(proverka.Take(Math.Min(5, proverka.Count))); * else return null; * }*/ public static string ActorDescriptionMessageTV(User user, string personId, out IEnumerable <MediaAttachment> attachments) { var ActInf = Film.Methods.ActorInfo(personId); attachments = new List <MediaAttachment> { Attachments.PosterObject(user, ActInf.posterUrl, personId) }; string ActorInfoObj = ""; if (ActInf.hasAwards == 1) { ActorInfoObj = "🏆 "; } if (ActInf.nameRu == null || ActInf.nameRu == string.Empty) { ActorInfoObj += ActInf.nameEn + "\n"; } else if (ActInf.nameEn == null || ActInf.nameEn == string.Empty) { ActorInfoObj += ActInf.nameRu + "\n"; } else if (ActInf.nameRu != null && ActInf.nameEn != null && ActInf.nameRu != string.Empty && ActInf.nameEn != string.Empty) { ActorInfoObj += ActInf.nameRu + "/" + ActInf.nameEn + "\n\n"; } if (ActInf.growth != null && ActInf.growth != "0") { ActorInfoObj += "🕺Рост: " + ActInf.growth + "\n"; } if (ActInf.birthday != null && ActInf.birthday != string.Empty) { ActorInfoObj += "👶День рождения: " + Film.Methods.ChangeDateType(ActInf.birthday) + "\n"; } if (ActInf.death != null && ActInf.death != string.Empty) { ActorInfoObj += "💀Дата смерти: " + Film.Methods.ChangeDateType(ActInf.death) + "\n"; } if (ActInf.age != 0) { ActorInfoObj += "⏰Возраст: " + ActInf.age + "\n\n"; } if (ActInf.facts != null && ActInf.facts.Count != 0) { ActorInfoObj += "✨Интересные факты\n" + string.Join("\n", ActInf.facts.Take(Math.Min(3, ActInf.facts.Count)).Select(f => $"✔ {f}")) + "\n"; } ActorInfoObj += "\n📽Фильмография\n"; int i = 0; var l = new List <int>(); foreach (var item in ActInf.films) { if (i == 10) { break; } if (l.Contains(item.filmId)) { continue; } if (item.nameRu == null) { ActorInfoObj += item.nameEn; } else { ActorInfoObj += item.nameRu; } if (item.rating != null) { var m = Regex.Match(item.rating, @"\b(\d)\.(\d)\b"); if (m.Success && m.Groups[1].Value != "0" && m.Groups[2].Value != "0") { ActorInfoObj += " ⭐" + item.rating; } } ActorInfoObj += "\n"; i++; l.Add(item.filmId); } return(ActorInfoObj); }