Example #1
0
        private void CustomUploaderUpdateFolder()
        {
            using (FolderSelectDialog fsd = new FolderSelectDialog())
            {
                if (fsd.ShowDialog())
                {
                    string   folderPath = fsd.FileName;
                    string[] files      = Directory.GetFiles(folderPath, "*.sxcu", SearchOption.TopDirectoryOnly);

                    int updated = 0;

                    if (files != null)
                    {
                        foreach (string filePath in files)
                        {
                            CustomUploaderItem cui = JsonHelpers.DeserializeFromFile <CustomUploaderItem>(filePath);

                            if (cui != null)
                            {
                                cui.CheckBackwardCompatibility();
                                CustomUploaderSerialize(cui, folderPath);
                                updated++;
                            }
                        }
                    }

                    MessageBox.Show($"{updated} custom uploader files updated.", "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
        private void eiCustomUploaders_ImportRequested(object obj)
        {
            CustomUploaderItem uploader = obj as CustomUploaderItem;

            uploader.CheckBackwardCompatibility();
            CustomUploaderAdd(uploader);
        }
        private void CustomUploaderAddDestinationTypes()
        {
            string[] enums = Helpers.GetLocalizedEnumDescriptions <CustomUploaderDestinationType>().Skip(1).Select(x => x.Replace("&", "&&")).ToArray();

            for (int i = 0; i < enums.Length; i++)
            {
                ToolStripMenuItem tsmi = new ToolStripMenuItem(enums[i]);

                int index = i;

                tsmi.Click += (sender, e) =>
                {
                    ToolStripMenuItem tsmi2 = (ToolStripMenuItem)cmsDestinationType.Items[index];
                    tsmi2.Checked = !tsmi2.Checked;

                    CustomUploaderItem uploader = CustomUploaderGetSelected();
                    if (uploader != null)
                    {
                        uploader.DestinationType = CustomUploaderGetDestinationType();
                    }

                    CustomUploaderDestinationTypeUpdate();
                };

                cmsDestinationType.Items.Add(tsmi);
            }

            cmsDestinationType.Closing += (sender, e) => e.Cancel = e.CloseReason == ToolStripDropDownCloseReason.ItemClicked;
        }
        private object eiCustomUploaders_ExportRequested()
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                if (string.IsNullOrEmpty(uploader.RequestURL))
                {
                    MessageBox.Show(Resources.UploadersConfigForm_eiCustomUploaders_ExportRequested_RequestURLMustBeConfigured, "ShareX - " + Resources.UploadersConfigForm_Error,
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(null);
                }

                if (uploader.DestinationType == CustomUploaderDestinationType.None)
                {
                    MessageBox.Show(Resources.UploadersConfigForm_eiCustomUploaders_ExportRequested_DestinationTypeMustBeConfigured, "ShareX - " + Resources.UploadersConfigForm_Error,
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return(null);
                }

                eiCustomUploaders.DefaultFileName = uploader.GetFileName();
            }

            return(uploader);
        }
 private void CustomUploaderAdd(CustomUploaderItem uploader)
 {
     if (uploader != null)
     {
         Config.CustomUploadersList.Add(uploader);
         lbCustomUploaderList.Items.Add(uploader);
     }
 }
        private void txtCustomUploaderFileForm_TextChanged(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.FileFormName = txtFileFormName.Text;
            }
        }
        private void CustomUploaderLoadSelected()
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                CustomUploaderLoad(uploader);
            }
        }
        private void cbCustomUploaderRequestType_SelectedIndexChanged(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.RequestMethod = (HttpMethod)cbRequestMethod.SelectedIndex;
            }
        }
        private void rtbCustomUploaderDeletionURL_TextChanged(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.DeletionURL = rtbResultDeletionURL.Text;
            }
            CustomUploaderSyntaxHighlight(rtbResultDeletionURL);
        }
        private void CustomUploaderNew()
        {
            CustomUploaderItem uploader = new CustomUploaderItem()
            {
                Version = Application.ProductVersion
            };

            CustomUploaderAdd(uploader);
            CustomUploaderUpdateList();
        }
        private void rtbResultErrorMessage_TextChanged(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.ErrorMessage = rtbResultErrorMessage.Text;
            }
            CustomUploaderSyntaxHighlight(rtbResultErrorMessage);
        }
        private void dgvRegex_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            CheckDataGridView(dgvRegex, false);

            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.RegexList = DataGridViewToList(dgvRegex);
            }
        }
        private void CustomUploaderLoad(CustomUploaderItem uploader)
        {
            txtName.Text = uploader.Name ?? "";
            txtName.SetWatermark(URLHelpers.GetHostName(uploader.RequestURL) ?? "");
            CustomUploaderSetDestinationType(uploader.DestinationType);

            cbRequestMethod.SelectedIndex = (int)uploader.RequestMethod;
            rtbRequestURL.Text            = uploader.RequestURL ?? "";
            CustomUploaderSyntaxHighlight(rtbRequestURL);

            dgvParameters.Rows.Clear();
            if (uploader.Parameters != null)
            {
                foreach (KeyValuePair <string, string> arg in uploader.Parameters)
                {
                    dgvParameters.Rows.Add(new string[] { arg.Key, arg.Value });
                }
            }

            dgvHeaders.Rows.Clear();
            if (uploader.Headers != null)
            {
                foreach (KeyValuePair <string, string> arg in uploader.Headers)
                {
                    dgvHeaders.Rows.Add(new string[] { arg.Key, arg.Value });
                }
            }

            cbBody.SelectedIndex = (int)uploader.Body;

            dgvArguments.Rows.Clear();
            if (uploader.Arguments != null)
            {
                foreach (KeyValuePair <string, string> arg in uploader.Arguments)
                {
                    dgvArguments.Rows.Add(new string[] { arg.Key, arg.Value });
                }
            }

            txtFileFormName.Text = uploader.FileFormName ?? "";

            rtbData.Text = uploader.Data ?? "";

            rtbResultURL.Text = uploader.URL;
            CustomUploaderSyntaxHighlight(rtbResultURL);
            rtbResultThumbnailURL.Text = uploader.ThumbnailURL;
            CustomUploaderSyntaxHighlight(rtbResultThumbnailURL);
            rtbResultDeletionURL.Text = uploader.DeletionURL;
            CustomUploaderSyntaxHighlight(rtbResultDeletionURL);
            rtbResultErrorMessage.Text = uploader.ErrorMessage;
            CustomUploaderSyntaxHighlight(rtbResultErrorMessage);

            CustomUploaderUpdateStates();
        }
        private void rtbCustomUploaderData_TextChanged(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.Data = rtbData.Text;
            }

            CustomUploaderSyntaxHighlight(rtbData);
        }
        private void dgvArguments_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            CheckDataGridView(dgvArguments, true);

            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.Arguments = DataGridViewToDictionary(dgvArguments);
            }
        }
        private void cbCustomUploaderRequestFormat_SelectedIndexChanged(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.Body = (CustomUploaderBody)cbBody.SelectedIndex;
            }

            CustomUploaderUpdateRequestFormatState();
        }
        private void txtCustomUploaderName_TextChanged(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.Name = txtName.Text;
            }

            CustomUploaderRefreshNames();
        }
        private void btnCustomUploaderDuplicate_Click(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                CustomUploaderItem clone = uploader.Copy();
                CustomUploaderAdd(clone);
                CustomUploaderUpdateList();
                lbCustomUploaderList.SelectedIndex = lbCustomUploaderList.Items.Count - 1;
            }
        }
        private void CustomUploaderUpdateRequestFormatState()
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                pBodyArguments.Visible = uploader.Body == CustomUploaderBody.MultipartFormData ||
                                         uploader.Body == CustomUploaderBody.FormURLEncoded;
                lblFileFormName.Visible = txtFileFormName.Visible = uploader.Body == CustomUploaderBody.MultipartFormData;
                pBodyData.Visible       = uploader.Body == CustomUploaderBody.JSON || uploader.Body == CustomUploaderBody.XML;
                btnDataMinify.Visible   = uploader.Body == CustomUploaderBody.JSON;
            }
        }
        private void rtbCustomUploaderRequestURL_TextChanged(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                uploader.RequestURL = rtbRequestURL.Text;
                txtName.SetWatermark(URLHelpers.GetHostName(uploader.RequestURL));
            }

            CustomUploaderSyntaxHighlight(rtbRequestURL);
            CustomUploaderRefreshNames();
        }
Example #21
0
 private void CustomUploaderSerialize(CustomUploaderItem cui, string folderPath)
 {
     try
     {
         string filePath = Path.Combine(folderPath, cui.GetFileName());
         JsonHelpers.SerializeToFile(cui, filePath, DefaultValueHandling.Ignore, NullValueHandling.Ignore);
     }
     catch (Exception e)
     {
         DebugHelper.WriteException(e);
         MessageBox.Show(Resources.ExportFailed + "\n\n" + e, "ShareX - " + "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Example #22
0
        private void CustomUploaderLoad(CustomUploaderItem uploader)
        {
            txtCustomUploaderName.Text = uploader.Name ?? "";
            CustomUploaderSetDestinationType(uploader.DestinationType);

            cbCustomUploaderRequestType.SelectedIndex = (int)uploader.RequestType;
            txtCustomUploaderRequestURL.Text          = uploader.RequestURL ?? "";
            txtCustomUploaderFileForm.Text            = uploader.FileFormName ?? "";
            txtCustomUploaderFileForm.Enabled         = uploader.RequestType == CustomUploaderRequestType.POST;

            txtCustomUploaderArgName.Text  = "";
            txtCustomUploaderArgValue.Text = "";
            lvCustomUploaderArguments.Items.Clear();
            if (uploader.Arguments != null)
            {
                foreach (KeyValuePair <string, string> arg in uploader.Arguments)
                {
                    lvCustomUploaderArguments.Items.Add(arg.Key).SubItems.Add(arg.Value);
                }
            }

            txtCustomUploaderHeaderName.Text  = "";
            txtCustomUploaderHeaderValue.Text = "";
            lvCustomUploaderHeaders.Items.Clear();
            if (uploader.Headers != null)
            {
                foreach (KeyValuePair <string, string> arg in uploader.Headers)
                {
                    lvCustomUploaderHeaders.Items.Add(arg.Key).SubItems.Add(arg.Value);
                }
            }

            cbCustomUploaderResponseType.SelectedIndex = (int)uploader.ResponseType;
            txtCustomUploaderJsonPath.Text             = "";
            txtCustomUploaderXPath.Text  = "";
            txtCustomUploaderRegexp.Text = "";
            lvCustomUploaderRegexps.Items.Clear();
            if (uploader.RegexList != null)
            {
                foreach (string regexp in uploader.RegexList)
                {
                    lvCustomUploaderRegexps.Items.Add(regexp);
                }
            }

            txtCustomUploaderURL.Text          = uploader.URL ?? "";
            txtCustomUploaderThumbnailURL.Text = uploader.ThumbnailURL ?? "";
            txtCustomUploaderDeletionURL.Text  = uploader.DeletionURL ?? "";

            CustomUploaderUpdateStates();
        }
Example #23
0
        private void CustomUploaderDestinationTypeUpdate()
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                if (uploader.DestinationType == CustomUploaderDestinationType.None)
                {
                    mbDestinationType.Text = CustomUploaderDestinationType.None.GetLocalizedDescription();
                }
                else
                {
                    mbDestinationType.Text = string.Join(", ", uploader.DestinationType.GetFlags().Select(x => x.GetLocalizedDescription()));
                }
            }
        }
        private void btnCustomUploaderDataBeautify_Click(object sender, EventArgs e)
        {
            CustomUploaderItem uploader = CustomUploaderGetSelected();

            if (uploader != null)
            {
                if (uploader.Body == CustomUploaderBody.JSON)
                {
                    CustomUploaderFormatJsonData(Formatting.Indented);
                }
                else if (uploader.Body == CustomUploaderBody.XML)
                {
                    CustomUploaderFormatXMLData();
                }
            }
        }
        private void CustomUploaderSettingsForm_DragDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
            {
                string[] files = e.Data.GetData(DataFormats.FileDrop, false) as string[];

                if (files != null)
                {
                    foreach (string filePath in files.Where(x => !string.IsNullOrEmpty(x) && x.EndsWith(".sxcu")))
                    {
                        CustomUploaderItem cui = JsonHelpers.DeserializeFromFilePath <CustomUploaderItem>(filePath);

                        if (cui != null)
                        {
                            cui.CheckBackwardCompatibility();
                            CustomUploaderAdd(cui);
                        }
                    }

                    eiCustomUploaders_ImportCompleted();
                }
            }
        }
        private void TestCustomUploader(CustomUploaderType type, CustomUploaderItem item)
        {
            btnCustomUploaderImageUploaderTest.Enabled = btnCustomUploaderTextUploaderTest.Enabled =
                btnCustomUploaderFileUploaderTest.Enabled = btnCustomUploaderURLShortenerTest.Enabled = false;

            UploadResult result = null;

            txtCustomUploaderLog.ResetText();

            TaskEx.Run(() =>
            {
                try
                {
                    switch (type)
                    {
                        case CustomUploaderType.Image:
                            using (Stream stream = ShareXResources.Logo.GetStream())
                            {
                                CustomImageUploader imageUploader = new CustomImageUploader(item);
                                result = imageUploader.Upload(stream, "Test.png");
                                result.Errors = imageUploader.Errors;
                            }
                            break;
                        case CustomUploaderType.Text:
                            CustomTextUploader textUploader = new CustomTextUploader(item);
                            result = textUploader.UploadText("ShareX text upload test", "Test.txt");
                            result.Errors = textUploader.Errors;
                            break;
                        case CustomUploaderType.File:
                            using (Stream stream = ShareXResources.Logo.GetStream())
                            {
                                CustomFileUploader fileUploader = new CustomFileUploader(item);
                                result = fileUploader.Upload(stream, "Test.png");
                                result.Errors = fileUploader.Errors;
                            }
                            break;
                        case CustomUploaderType.URL:
                            CustomURLShortener urlShortener = new CustomURLShortener(item);
                            result = urlShortener.ShortenURL(Links.URL_WEBSITE);
                            result.Errors = urlShortener.Errors;
                            break;
                    }
                }
                catch (Exception e)
                {
                    result = new UploadResult();
                    result.Errors.Add(e.Message);
                }
            },
            () =>
            {
                if (!IsDisposed)
                {
                    if (result != null)
                    {
                        if ((type != CustomUploaderType.URL && !string.IsNullOrEmpty(result.URL)) || (type == CustomUploaderType.URL && !string.IsNullOrEmpty(result.ShortenedURL)))
                        {
                            txtCustomUploaderLog.AppendText("URL: " + result + Environment.NewLine);

                            if (!string.IsNullOrEmpty(result.ThumbnailURL))
                            {
                                txtCustomUploaderLog.AppendText("Thumbnail URL: " + result.ThumbnailURL + Environment.NewLine);
                            }

                            if (!string.IsNullOrEmpty(result.DeletionURL))
                            {
                                txtCustomUploaderLog.AppendText("Deletion URL: " + result.DeletionURL + Environment.NewLine);
                            }
                        }
                        else if (result.IsError)
                        {
                            txtCustomUploaderLog.AppendText(Resources.UploadersConfigForm_Error + ": " + result.ErrorsToString() + Environment.NewLine);
                        }
                        else
                        {
                            txtCustomUploaderLog.AppendText(Resources.UploadersConfigForm_TestCustomUploader_Error__Result_is_empty_ + Environment.NewLine);
                        }

                        txtCustomUploaderLog.ScrollToCaret();

                        btnCustomUploaderShowLastResponse.Tag = result.Response;
                        btnCustomUploaderShowLastResponse.Enabled = !string.IsNullOrEmpty(result.Response);
                    }

                    btnCustomUploaderImageUploaderTest.Enabled = btnCustomUploaderTextUploaderTest.Enabled =
                        btnCustomUploaderFileUploaderTest.Enabled = btnCustomUploaderURLShortenerTest.Enabled = true;
                }
            });
        }
        private void LoadCustomUploader(CustomUploaderItem customUploader)
        {
            txtCustomUploaderName.Text = customUploader.Name;

            cbCustomUploaderRequestType.SelectedIndex = (int)customUploader.RequestType;
            txtCustomUploaderRequestURL.Text = customUploader.RequestURL;
            txtCustomUploaderFileForm.Text = customUploader.FileFormName;
            txtCustomUploaderFileForm.Enabled = customUploader.RequestType == CustomUploaderRequestType.POST;

            txtCustomUploaderArgName.Text = string.Empty;
            txtCustomUploaderArgValue.Text = string.Empty;
            lvCustomUploaderArguments.Items.Clear();
            foreach (KeyValuePair<string, string> arg in customUploader.Arguments)
            {
                lvCustomUploaderArguments.Items.Add(arg.Key).SubItems.Add(arg.Value);
            }

            cbCustomUploaderResponseType.SelectedIndex = (int)customUploader.ResponseType;
            txtCustomUploaderRegexp.Text = string.Empty;
            lvCustomUploaderRegexps.Items.Clear();
            foreach (string regexp in customUploader.RegexList)
            {
                lvCustomUploaderRegexps.Items.Add(regexp);
            }

            txtCustomUploaderURL.Text = customUploader.URL;
            txtCustomUploaderThumbnailURL.Text = customUploader.ThumbnailURL;
            txtCustomUploaderDeletionURL.Text = customUploader.DeletionURL;
        }
        private CustomUploaderItem GetCustomUploaderFromFields()
        {
            CustomUploaderItem item = new CustomUploaderItem(txtCustomUploaderName.Text);
            foreach (ListViewItem lvItem in lvCustomUploaderArguments.Items)
            {
                item.Arguments.Add(lvItem.Text, lvItem.SubItems[1].Text);
            }

            item.RequestType = (CustomUploaderRequestType)cbCustomUploaderRequestType.SelectedIndex;
            item.RequestURL = txtCustomUploaderRequestURL.Text;
            item.FileFormName = txtCustomUploaderFileForm.Text;

            item.ResponseType = (ResponseType)cbCustomUploaderResponseType.SelectedIndex;
            foreach (ListViewItem lvItem in lvCustomUploaderRegexps.Items)
            {
                item.RegexList.Add(lvItem.Text);
            }

            item.URL = txtCustomUploaderURL.Text;
            item.ThumbnailURL = txtCustomUploaderThumbnailURL.Text;
            item.DeletionURL = txtCustomUploaderDeletionURL.Text;

            return item;
        }
 private void AddCustomUploader(CustomUploaderItem customUploader)
 {
     if (customUploader != null && !string.IsNullOrEmpty(customUploader.Name))
     {
         Config.CustomUploadersList.Add(customUploader);
         lbCustomUploaderList.Items.Add(customUploader.Name);
         lbCustomUploaderList.SelectedIndex = lbCustomUploaderList.Items.Count - 1;
         PrepareCustomUploaderList();
     }
 }
        private void LoadCustomUploader(CustomUploaderItem customUploader)
        {
            txtCustomUploaderName.Text = customUploader.Name ?? "";

            cbCustomUploaderRequestType.SelectedIndex = (int)customUploader.RequestType;
            txtCustomUploaderRequestURL.Text = customUploader.RequestURL ?? "";
            txtCustomUploaderFileForm.Text = customUploader.FileFormName ?? "";
            txtCustomUploaderFileForm.Enabled = customUploader.RequestType == CustomUploaderRequestType.POST;

            txtCustomUploaderArgName.Text = "";
            txtCustomUploaderArgValue.Text = "";
            lvCustomUploaderArguments.Items.Clear();
            if (customUploader.Arguments != null)
            {
                foreach (KeyValuePair<string, string> arg in customUploader.Arguments)
                {
                    lvCustomUploaderArguments.Items.Add(arg.Key).SubItems.Add(arg.Value);
                }
            }

            txtCustomUploaderHeaderName.Text = "";
            txtCustomUploaderHeaderValue.Text = "";
            lvCustomUploaderHeaders.Items.Clear();
            if (customUploader.Headers != null)
            {
                foreach (KeyValuePair<string, string> arg in customUploader.Headers)
                {
                    lvCustomUploaderHeaders.Items.Add(arg.Key).SubItems.Add(arg.Value);
                }
            }

            cbCustomUploaderResponseType.SelectedIndex = (int)customUploader.ResponseType;
            txtCustomUploaderRegexp.Text = "";
            lvCustomUploaderRegexps.Items.Clear();
            if (customUploader.RegexList != null)
            {
                foreach (string regexp in customUploader.RegexList)
                {
                    lvCustomUploaderRegexps.Items.Add(regexp);
                }
            }
            txtCustomUploaderJsonPath.Text = "";
            txtCustomUploaderXPath.Text = "";

            txtCustomUploaderURL.Text = customUploader.URL ?? "";
            txtCustomUploaderThumbnailURL.Text = customUploader.ThumbnailURL ?? "";
            txtCustomUploaderDeletionURL.Text = customUploader.DeletionURL ?? "";
        }
        private CustomUploaderItem GetCustomUploaderFromFields()
        {
            CustomUploaderItem item = new CustomUploaderItem(txtCustomUploaderName.Text);

            item.RequestType = (CustomUploaderRequestType)cbCustomUploaderRequestType.SelectedIndex;

            item.RequestURL = txtCustomUploaderRequestURL.Text;

            if (!string.IsNullOrEmpty(txtCustomUploaderFileForm.Text))
            {
                item.FileFormName = txtCustomUploaderFileForm.Text;
            }

            if (lvCustomUploaderArguments.Items.Count > 0)
            {
                item.Arguments = new Dictionary<string, string>();

                foreach (ListViewItem lvItem in lvCustomUploaderArguments.Items)
                {
                    item.Arguments.Add(lvItem.Text, lvItem.SubItems[1].Text);
                }
            }

            if (lvCustomUploaderHeaders.Items.Count > 0)
            {
                item.Headers = new Dictionary<string, string>();

                foreach (ListViewItem lvItem in lvCustomUploaderHeaders.Items)
                {
                    item.Headers.Add(lvItem.Text, lvItem.SubItems[1].Text);
                }
            }

            item.ResponseType = (ResponseType)cbCustomUploaderResponseType.SelectedIndex;

            if (lvCustomUploaderRegexps.Items.Count > 0)
            {
                item.RegexList = new List<string>();

                foreach (ListViewItem lvItem in lvCustomUploaderRegexps.Items)
                {
                    item.RegexList.Add(lvItem.Text);
                }
            }

            if (!string.IsNullOrEmpty(txtCustomUploaderURL.Text))
            {
                item.URL = txtCustomUploaderURL.Text;
            }

            if (!string.IsNullOrEmpty(txtCustomUploaderThumbnailURL.Text))
            {
                item.ThumbnailURL = txtCustomUploaderThumbnailURL.Text;
            }

            if (!string.IsNullOrEmpty(txtCustomUploaderDeletionURL.Text))
            {
                item.DeletionURL = txtCustomUploaderDeletionURL.Text;
            }

            return item;
        }
Example #32
0
 private void CustomUploaderNew()
 {
     CustomUploaderAdd(CustomUploaderItem.Init());
     CustomUploaderUpdateList();
 }
Example #33
0
 private void CustomUploaderClearFields()
 {
     CustomUploaderLoad(CustomUploaderItem.Init());
 }
Example #34
0
        private async Task TestCustomUploader(CustomUploaderDestinationType type, int index)
        {
            if (!Config.CustomUploadersList.IsValidIndex(index))
            {
                return;
            }

            btnImageUploaderTest.Enabled       = btnTextUploaderTest.Enabled = btnFileUploaderTest.Enabled =
                btnURLShortenerTest.Enabled    = btnURLSharingServiceTest.Enabled = false;
            lbCustomUploaderList.SelectedIndex = index;

            CustomUploaderItem item   = Config.CustomUploadersList[index];
            UploadResult       result = null;

            await Task.Run(() =>
            {
                try
                {
                    switch (type)
                    {
                    case CustomUploaderDestinationType.ImageUploader:
                        using (Stream stream = ShareXResources.Logo.GetStream())
                        {
                            CustomImageUploader imageUploader = new CustomImageUploader(item);
                            result = imageUploader.Upload(stream, "Test.png");
                            result.Errors.AddRange(imageUploader.Errors);
                        }
                        break;

                    case CustomUploaderDestinationType.TextUploader:
                        CustomTextUploader textUploader = new CustomTextUploader(item);
                        result = textUploader.UploadText("ShareX text upload test", "Test.txt");
                        result.Errors.AddRange(textUploader.Errors);
                        break;

                    case CustomUploaderDestinationType.FileUploader:
                        using (Stream stream = ShareXResources.Logo.GetStream())
                        {
                            CustomFileUploader fileUploader = new CustomFileUploader(item);
                            result = fileUploader.Upload(stream, "Test.png");
                            result.Errors.AddRange(fileUploader.Errors);
                        }
                        break;

                    case CustomUploaderDestinationType.URLShortener:
                        CustomURLShortener urlShortener = new CustomURLShortener(item);
                        result = urlShortener.ShortenURL(Links.URL_WEBSITE);
                        result.Errors.AddRange(urlShortener.Errors);
                        break;

                    case CustomUploaderDestinationType.URLSharingService:
                        CustomURLSharer urlSharer = new CustomURLSharer(item);
                        result = urlSharer.ShareURL(Links.URL_WEBSITE);
                        result.Errors.AddRange(urlSharer.Errors);
                        break;
                    }
                }
                catch (Exception e)
                {
                    result = new UploadResult();
                    result.Errors.Add(e.Message);
                }
            });

            if (!IsDisposed)
            {
                if (result != null)
                {
                    ResponseForm.ShowInstance(result);
                }

                btnImageUploaderTest.Enabled    = btnTextUploaderTest.Enabled = btnFileUploaderTest.Enabled =
                    btnURLShortenerTest.Enabled = btnURLSharingServiceTest.Enabled = true;
            }
        }
        private async Task TestCustomUploader(CustomUploaderDestinationType type, int index)
        {
            if (!Config.CustomUploadersList.IsValidIndex(index))
            {
                return;
            }

            btnImageUploaderTest.Enabled    = btnTextUploaderTest.Enabled = btnFileUploaderTest.Enabled =
                btnURLShortenerTest.Enabled = btnURLSharingServiceTest.Enabled = false;
            rtbResult.ResetText();
            txtResponseText.ResetText();
            lbCustomUploaderList.SelectedIndex = index;

            CustomUploaderItem item   = Config.CustomUploadersList[index];
            UploadResult       result = null;

            await Task.Run(() =>
            {
                try
                {
                    switch (type)
                    {
                    case CustomUploaderDestinationType.ImageUploader:
                        using (Stream stream = ShareXResources.Logo.GetStream())
                        {
                            CustomImageUploader imageUploader = new CustomImageUploader(item);
                            result        = imageUploader.Upload(stream, "Test.png");
                            result.Errors = imageUploader.Errors;
                        }
                        break;

                    case CustomUploaderDestinationType.TextUploader:
                        CustomTextUploader textUploader = new CustomTextUploader(item);
                        result        = textUploader.UploadText("ShareX text upload test", "Test.txt");
                        result.Errors = textUploader.Errors;
                        break;

                    case CustomUploaderDestinationType.FileUploader:
                        using (Stream stream = ShareXResources.Logo.GetStream())
                        {
                            CustomFileUploader fileUploader = new CustomFileUploader(item);
                            result        = fileUploader.Upload(stream, "Test.png");
                            result.Errors = fileUploader.Errors;
                        }
                        break;

                    case CustomUploaderDestinationType.URLShortener:
                        CustomURLShortener urlShortener = new CustomURLShortener(item);
                        result        = urlShortener.ShortenURL(Links.URL_WEBSITE);
                        result.Errors = urlShortener.Errors;
                        break;

                    case CustomUploaderDestinationType.URLSharingService:
                        CustomURLSharer urlSharer = new CustomURLSharer(item);
                        result        = urlSharer.ShareURL(Links.URL_WEBSITE);
                        result.Errors = urlSharer.Errors;
                        break;
                    }
                }
                catch (Exception e)
                {
                    result = new UploadResult();
                    result.Errors.Add(e.Message);
                }
            });

            if (!IsDisposed)
            {
                if (result != null)
                {
                    StringBuilder sbResult = new StringBuilder();

                    if (((type == CustomUploaderDestinationType.ImageUploader || type == CustomUploaderDestinationType.TextUploader ||
                          type == CustomUploaderDestinationType.FileUploader) && !string.IsNullOrEmpty(result.URL)) ||
                        (type == CustomUploaderDestinationType.URLShortener && !string.IsNullOrEmpty(result.ShortenedURL)) ||
                        (type == CustomUploaderDestinationType.URLSharingService && !result.IsError && !string.IsNullOrEmpty(result.URL)))
                    {
                        if (!string.IsNullOrEmpty(result.ShortenedURL))
                        {
                            sbResult.AppendLine("Shortened URL: " + result.ShortenedURL);
                        }

                        if (!string.IsNullOrEmpty(result.URL))
                        {
                            sbResult.AppendLine("URL: " + result.URL);
                        }

                        if (!string.IsNullOrEmpty(result.ThumbnailURL))
                        {
                            sbResult.AppendLine("Thumbnail URL: " + result.ThumbnailURL);
                        }

                        if (!string.IsNullOrEmpty(result.DeletionURL))
                        {
                            sbResult.AppendLine("Deletion URL: " + result.DeletionURL);
                        }
                    }
                    else if (result.IsError)
                    {
                        sbResult.AppendLine(result.ErrorsToString());
                    }
                    else
                    {
                        sbResult.AppendLine(Resources.UploadersConfigForm_TestCustomUploader_Error__Result_is_empty_);
                    }

                    rtbResult.Text       = sbResult.ToString();
                    txtResponseText.Text = result.ResponseInfo?.ResponseText;

                    tcCustomUploader.SelectedTab = tpTest;
                }

                btnImageUploaderTest.Enabled    = btnTextUploaderTest.Enabled = btnFileUploaderTest.Enabled =
                    btnURLShortenerTest.Enabled = btnURLSharingServiceTest.Enabled = true;
            }
        }
Example #36
0
        private async Task TestCustomUploader(CustomUploaderDestinationType type, CustomUploaderItem item)
        {
            btnCustomUploaderImageUploaderTest.Enabled    = btnCustomUploaderTextUploaderTest.Enabled = btnCustomUploaderFileUploaderTest.Enabled =
                btnCustomUploaderURLShortenerTest.Enabled = btnCustomUploaderURLSharingServiceTest.Enabled = false;

            UploadResult result = null;

            txtCustomUploaderLog.ResetText();

            await Task.Run(() =>
            {
                try
                {
                    switch (type)
                    {
                    case CustomUploaderDestinationType.ImageUploader:
                        using (Stream stream = ShareXResources.Logo.GetStream())
                        {
                            CustomImageUploader imageUploader = new CustomImageUploader(item);
                            result        = imageUploader.Upload(stream, "Test.png");
                            result.Errors = imageUploader.Errors;
                        }
                        break;

                    case CustomUploaderDestinationType.TextUploader:
                        CustomTextUploader textUploader = new CustomTextUploader(item);
                        result        = textUploader.UploadText("ShareX text upload test", "Test.txt");
                        result.Errors = textUploader.Errors;
                        break;

                    case CustomUploaderDestinationType.FileUploader:
                        using (Stream stream = ShareXResources.Logo.GetStream())
                        {
                            CustomFileUploader fileUploader = new CustomFileUploader(item);
                            result        = fileUploader.Upload(stream, "Test.png");
                            result.Errors = fileUploader.Errors;
                        }
                        break;

                    case CustomUploaderDestinationType.URLShortener:
                        CustomURLShortener urlShortener = new CustomURLShortener(item);
                        result        = urlShortener.ShortenURL(Links.URL_WEBSITE);
                        result.Errors = urlShortener.Errors;
                        break;

                    case CustomUploaderDestinationType.URLSharingService:
                        CustomURLSharer urlSharer = new CustomURLSharer(item);
                        result        = urlSharer.ShareURL(Links.URL_WEBSITE);
                        result.Errors = urlSharer.Errors;
                        break;
                    }
                }
                catch (Exception e)
                {
                    result = new UploadResult();
                    result.Errors.Add(e.Message);
                }
            });

            if (!IsDisposed)
            {
                if (result != null)
                {
                    if (((type == CustomUploaderDestinationType.ImageUploader || type == CustomUploaderDestinationType.TextUploader ||
                          type == CustomUploaderDestinationType.FileUploader) && !string.IsNullOrEmpty(result.URL)) ||
                        (type == CustomUploaderDestinationType.URLShortener && !string.IsNullOrEmpty(result.ShortenedURL)) ||
                        (type == CustomUploaderDestinationType.URLSharingService && !result.IsError && !string.IsNullOrEmpty(result.URL)))
                    {
                        txtCustomUploaderLog.AppendText("URL: " + result + Environment.NewLine);

                        if (!string.IsNullOrEmpty(result.ThumbnailURL))
                        {
                            txtCustomUploaderLog.AppendText("Thumbnail URL: " + result.ThumbnailURL + Environment.NewLine);
                        }

                        if (!string.IsNullOrEmpty(result.DeletionURL))
                        {
                            txtCustomUploaderLog.AppendText("Deletion URL: " + result.DeletionURL + Environment.NewLine);
                        }
                    }
                    else if (result.IsError)
                    {
                        txtCustomUploaderLog.AppendText(Resources.UploadersConfigForm_Error + ": " + result.ErrorsToString() + Environment.NewLine);
                    }
                    else
                    {
                        txtCustomUploaderLog.AppendText(Resources.UploadersConfigForm_TestCustomUploader_Error__Result_is_empty_ + Environment.NewLine);
                    }

                    txtCustomUploaderLog.ScrollToCaret();

                    btnCustomUploaderShowLastResponse.Tag     = result.Response;
                    btnCustomUploaderShowLastResponse.Enabled = !string.IsNullOrEmpty(result.Response);
                }

                btnCustomUploaderImageUploaderTest.Enabled    = btnCustomUploaderTextUploaderTest.Enabled = btnCustomUploaderFileUploaderTest.Enabled =
                    btnCustomUploaderURLShortenerTest.Enabled = btnCustomUploaderURLSharingServiceTest.Enabled = true;
            }
        }