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; } }); }
public UploadResult UploadText(Stream stream, string fileName) { TextUploader textUploader = null; switch (Info.TaskSettings.TextDestination) { case TextDestination.Pastebin: PastebinSettings settings = Program.UploadersConfig.PastebinSettings; if (string.IsNullOrEmpty(settings.TextFormat)) { settings.TextFormat = Info.TaskSettings.AdvancedSettings.TextFormat; } textUploader = new Pastebin(APIKeys.PastebinKey, settings); break; case TextDestination.Paste2: textUploader = new Paste2(new Paste2Settings { TextFormat = Info.TaskSettings.AdvancedSettings.TextFormat }); break; case TextDestination.Slexy: textUploader = new Slexy(new SlexySettings { TextFormat = Info.TaskSettings.AdvancedSettings.TextFormat }); break; case TextDestination.Pastee: textUploader = new Pastee { Lexer = Info.TaskSettings.AdvancedSettings.TextFormat }; break; case TextDestination.Paste_ee: textUploader = new Paste_ee(Program.UploadersConfig.Paste_eeUserAPIKey); break; case TextDestination.Gist: textUploader = Program.UploadersConfig.GistAnonymousLogin ? new Gist(Program.UploadersConfig.GistPublishPublic) : new Gist(Program.UploadersConfig.GistPublishPublic, Program.UploadersConfig.GistOAuth2Info); break; case TextDestination.Upaste: textUploader = new Upaste(Program.UploadersConfig.UpasteUserKey) { IsPublic = Program.UploadersConfig.UpasteIsPublic }; break; case TextDestination.Hastebin: textUploader = new Hastebin() { CustomDomain = Program.UploadersConfig.HastebinCustomDomain, SyntaxHighlighting = Program.UploadersConfig.HastebinSyntaxHighlighting }; break; case TextDestination.CustomTextUploader: CustomUploaderItem customUploader = GetCustomUploader(Program.UploadersConfig.CustomTextUploaderSelected); if (customUploader != null) { textUploader = new CustomTextUploader(customUploader); } break; } if (textUploader != null) { PrepareUploader(textUploader); return textUploader.UploadText(stream, fileName); } return null; }