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(); }
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); } }
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(); }
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; }
private void CustomUploaderNew() { CustomUploaderAdd(CustomUploaderItem.Init()); CustomUploaderUpdateList(); }
private void CustomUploaderClearFields() { CustomUploaderLoad(CustomUploaderItem.Init()); }
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; } }
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; } }