/// <summary> /// Возвращает один элемент карусели фильмов-рекомендаций /// </summary> /// <param name="film"></param> /// <returns></returns> public static CarouselElement CarouselFilm(Film.FilmObject film) { var button = new VkNet.Model.Keyboard.KeyboardBuilder(false); var genres = string.Join('*', film.data.genres.Select(g => g.genre)); button.AddButton("Подробнее", $"f;;;{film.data.filmId};;;", Positive, "text"); var element = new CarouselElement(); element.Title = film.data.nameRu; element.Description = genres.Replace("*", ", "); element.Buttons = button.Build().Buttons.First(); element.PhotoId = film.data.VKPhotoID; return(element); }
//Вложения для фильмов #region FilmPosters /// <summary> /// Возвращает ID постера фильма из списка PopularFilms /// </summary> /// <param name="film"></param> /// <returns></returns> public static string PopularFilmPosterID(Film.FilmObject film, out string photoID2) { try { string path = String.Format(Bot.directory + "/film_{0}_{1}.jpg", film.data.filmId, Guid.NewGuid()); WebClient wc = new WebClient(); wc.DownloadFile(film.data.posterUrl, path); if (!SizeIsWell(path)) { photoID2 = null; return(null); } //загрузка полноценных фотографий - не импотентов var uploadServer2 = Bot.private_vkapi.Photo.GetUploadServer(Bot.album_id_popular, Bot.group_id_service); var responseFile2 = Encoding.ASCII.GetString(wc.UploadFile(uploadServer2.UploadUrl, path)); var photo2 = Bot.private_vkapi.Photo.Save(new PhotoSaveParams { SaveFileResponse = responseFile2, AlbumId = Bot.album_id_popular, GroupId = Bot.group_id_service }).First(); photoID2 = $"-{Bot.group_id_service}_{photo2.Id}"; // обрезание if (!CropAndOverwrite(path)) { return(null); } var uploadServer = Bot.private_vkapi.Photo.GetUploadServer(Bot.album_id_popular, Bot.group_id_service); var responseFile = Encoding.ASCII.GetString(wc.UploadFile(uploadServer.UploadUrl, path)); var photo = Bot.private_vkapi.Photo.Save(new PhotoSaveParams { SaveFileResponse = responseFile, AlbumId = Bot.album_id_popular, GroupId = Bot.group_id_service }).First(); var vkid = $"-{Bot.group_id_service}_{photo.Id}"; File.Delete(path); return(vkid); } catch (Exception e) { WriteLine($"Исключение: {e.Message}\nСтектрейс: {e.StackTrace}"); photoID2 = null; return(null); } }
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; }