Esempio n. 1
0
        private void SelectFilesButtonClick(object sender, RoutedEventArgs e)
        {
            var files = FileSelectorHelper.SelectFiles();

            if (files == null)
            {
                SelectFilesButton.Content = "Select files";
                UploadButton.IsEnabled    = false;
            }
            else
            {
                SelectFilesButton.Content = $"Selected files ({files.Length})";
                UploadButton.IsEnabled    = true;
            }
        }
Esempio n. 2
0
        private async void UploadButtonClick(object sender, RoutedEventArgs e)
        {
            if (FileSelectorHelper.LatestSelected == null)
            {
                "Please select at least one file.".ShowMsg("ERR", MessageBoxImage.Error);
            }
            if (UploadButton.Content.ToString().StartsWith("Uploading") ||
                UploadButton.Content.ToString().StartsWith("Preparing"))
            {
                "Uploading....".ShowMsg("ERR", MessageBoxImage.Error);
                return;
            }
            var caption = CaptionText.Text;

            if (FileSelectorHelper.LatestSelected.Length == 1)
            {
                // single photo or video
                var      firstPath = FileSelectorHelper.LatestSelected.FirstOrDefault();
                FileType type      = FileSelectorHelper.GetFileType(firstPath);
                if (type == FileType.Video)
                {
                    UploadButton.Content = "Preparing video...";
                    var screenshot = Path.Combine(Helper.CacheTempPath, Helper.RandomString()) + ".jpg";
                    Helper.FFmpeg.ExtractImageFromVideo(firstPath, screenshot);
                    await Task.Delay(500);

                    var vid = new InstaVideoUpload
                    {
                        Video          = new InstaVideo(firstPath, 0, 0),
                        VideoThumbnail = new InstaImage(screenshot, 0, 0)
                    };
                    UploadButton.Content = "Preparing video...";
                    var up = await Helper.InstaApi.MediaProcessor.UploadVideoAsync(vid, caption);

                    if (up.Succeeded)
                    {
                        "Your video uploaded successfully.".ShowMsg("Succeeded", MessageBoxImage.Information);
                    }
                    else
                    {
                        up.Info.Message.ShowMsg("ERR", MessageBoxImage.Error);
                    }
                    UploadButton.Content = "Upload";
                }
                else
                {
                    UploadButton.Content = "Uploading photo...";
                    var imgPath = ImageHelper.ConvertToJPEG(firstPath);
                    var img     = new InstaImage(imgPath, 0, 0);
                    var up      = await Helper.InstaApi.MediaProcessor.UploadPhotoAsync(img, caption);

                    if (up.Succeeded)
                    {
                        "Your photo uploaded successfully.".ShowMsg("Succeeded", MessageBoxImage.Information);
                    }
                    else
                    {
                        up.Info.Message.ShowMsg("ERR", MessageBoxImage.Error);
                    }
                    UploadButton.Content = "Upload";
                }
            }
            else
            {
                // album
                var videos = new List <InstaVideoUpload>();
                var images = new List <InstaImage>();

                UploadButton.Content = "Preparing album...";
                Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
                                  (Action)(async() =>
                {
                    foreach (var item in FileSelectorHelper.LatestSelected)
                    {
                        var type = FileSelectorHelper.GetFileType(item);
                        if (type == FileType.Image)
                        {
                            var imgPath = ImageHelper.ConvertToJPEG(item);
                            images.Add(new InstaImage(imgPath, 0, 0));
                        }
                        else
                        {
                            var screenshot = Path.Combine(Helper.CacheTempPath, Helper.RandomString()) + ".jpg";
                            Helper.FFmpeg.ExtractImageFromVideo(item, screenshot);

                            var vid = new InstaVideoUpload
                            {
                                Video = new InstaVideo(item, 0, 0),
                                VideoThumbnail = new InstaImage(screenshot, 0, 0)
                            };
                            videos.Add(vid);
                            await Task.Delay(2000);
                        }
                    }
                    await Task.Delay(6000);
                    UploadButton.Content = "Uploading album...";
                    var up = await Helper.InstaApi.MediaProcessor.UploadAlbumAsync(images.ToArray(),
                                                                                   videos.ToArray(), caption);

                    if (up.Succeeded)
                    {
                        "Your album uploaded successfully.".ShowMsg("Succeeded", MessageBoxImage.Information);
                    }
                    else
                    {
                        up.Info.Message.ShowMsg("ERR", MessageBoxImage.Error);
                    }
                    UploadButton.Content = "Upload";
                }));
            }
        }