Example #1
0
    private async Task <History> Upload(ImgurPreset preset, string path, Dictionary <string, string> args, NameValueCollection headers)
    {
        await using (var stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
        {
            var result = await WebHelper.SendFile("https://api.imgur.com/3/image", stream, path, args, headers, "image");

            var response = Serializer.Deserialize <ImgurUploadResponse>(result);

            //Error when sending video.
            //{"data":{"errorCode":null,"ticket":"7234557b"},"success":true,"status":200}
            //{"data":{"error":"No image data was sent to the upload api","request":"\/3\/image","method":"POST"},"success":false,"status":400}

            if (response == null || (!response.Success && response.Status != 200))
            {
                LogWriter.Log("It was not possible to upload to Imgur", result);

                return(new ImgurHistory
                {
                    PresetName = preset.Title,
                    DateInUtc = DateTime.UtcNow,
                    Result = 400,
                    Message = response?.Status + " - " + (response?.Data?.Error ?? result)
                });
            }

            if (string.IsNullOrEmpty(response.Data?.Link))
            {
                LogWriter.Log("It was not possible to upload to Imgur", result);

                return(new ImgurHistory
                {
                    PresetName = preset.Title,
                    DateInUtc = DateTime.UtcNow,
                    Result = 400,
                    Message = "Upload failed. The link was not provided."
                });
            }

            var history = new ImgurHistory
            {
                PresetName   = preset.Title,
                DateInUtc    = DateTime.UtcNow,
                Result       = 200,
                Id           = response.Data.Id,
                Link         = $"https://imgur.com/{response.Data.Id}",
                DeletionLink = $"https://imgur.com/delete/{response.Data.DeleteHash}",
                Mp4          = response.Data.Mp4,
                Webm         = response.Data.Webm,
                Gifv         = response.Data.Gifv,
                Gif          = response.Data.Link
            };

            return(history);
        }
    }
Example #2
0
        private void ClearAll_Click(object sender, RoutedEventArgs e)
        {
            if (MetroMessageBox.Show("Clear All History",
                                     "Are you sure you want to clear ALL archived uploads? This action cannot be undone.",
                                     MetroMessageBox.MessageBoxButtons.YesNo) != MetroMessageBox.MessageBoxResult.Yes)
            {
                return;
            }
            ImgurHistory.ClearEntries();

            UpdateHistory();
        }
Example #3
0
        private void HistoryDelete_Click(object sender, RoutedEventArgs e)
        {
            var senderEntry = (Settings.ImgurHistoryEntry)((Button)sender).DataContext;

            if (senderEntry == null)
            {
                return;
            }

            ImgurHistory.RemoveEntry(senderEntry);

            UpdateHistory();
        }
Example #4
0
        private void imageUpload_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            doingAction.Visibility = Visibility.Collapsed;

            if (_imageID == null || (_imageID.Length < 5 && _imageID.Length > 9))
            {
                MetroMessageBox.Show("Error", _imageID ?? "Error uploading image.");

                _imageID = null;
            }
            else
            {
                MetroImgurUpload.Show(_imageID);

                string _thumburl = string.Format("http://i.imgur.com/{0}b.jpg", _imageID);
                string _url      = string.Format("http://i.imgur.com/{0}.jpg", _imageID);

                Dispatcher.Invoke(new Action(delegate
                {
                    ImgurHistory.AddNewEntry(_datetime_long, _thumburl, _url);
                }));
            }
        }
 public void ClearHistory()
 {
     ImgurConfiguration.RuntimeImgurHistory.Clear();
     ImgurConfiguration.ImgurUploadHistory.Clear();
     ImgurHistory.Clear();
 }