/// <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);
        }
Esempio n. 2
0
        //Вложения для фильмов
        #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;
            }