public UploadResult ShortenURL(string url) { URLShortener urlShortener = null; switch (Info.TaskSettings.URLShortenerDestination) { case UrlShortenerType.BITLY: if (Program.UploadersConfig.BitlyOAuth2Info == null) { Program.UploadersConfig.BitlyOAuth2Info = new OAuth2Info(APIKeys.BitlyClientID, APIKeys.BitlyClientSecret); } urlShortener = new BitlyURLShortener(Program.UploadersConfig.BitlyOAuth2Info) { Domain = Program.UploadersConfig.BitlyDomain }; break; case UrlShortenerType.Google: urlShortener = new GoogleURLShortener(Program.UploadersConfig.GoogleURLShortenerAccountType, APIKeys.GoogleAPIKey, Program.UploadersConfig.GoogleURLShortenerOAuth2Info); break; case UrlShortenerType.ISGD: urlShortener = new IsgdURLShortener(); break; case UrlShortenerType.VGD: urlShortener = new VgdURLShortener(); break; case UrlShortenerType.TINYURL: urlShortener = new TinyURLShortener(); break; case UrlShortenerType.TURL: urlShortener = new TurlURLShortener(); break; case UrlShortenerType.YOURLS: urlShortener = new YourlsURLShortener { APIURL = Program.UploadersConfig.YourlsAPIURL, Signature = Program.UploadersConfig.YourlsSignature, Username = Program.UploadersConfig.YourlsUsername, Password = Program.UploadersConfig.YourlsPassword }; break; case UrlShortenerType.NLCM: urlShortener = new NlcmURLShortener(); break; case UrlShortenerType.AdFly: urlShortener = new AdFlyURLShortener { APIKEY = Program.UploadersConfig.AdFlyAPIKEY, APIUID = Program.UploadersConfig.AdFlyAPIUID }; break; case UrlShortenerType.LnkU: urlShortener = new LnkUURLShortener { API_KEY = Program.UploadersConfig.LnkUAPIKEY }; break; case UrlShortenerType.CoinURL: urlShortener = new CoinURLShortener { UUID = Program.UploadersConfig.CoinURLUUID }; break; case UrlShortenerType.QRnet: urlShortener = new QRnetURLShortener(); break; case UrlShortenerType.VURL: urlShortener = new VURLShortener(); break; case UrlShortenerType.TwoGP: urlShortener = new TwoGPURLShortener(); break; case UrlShortenerType.Polr: urlShortener = new PolrURLShortener { API_HOST = Program.UploadersConfig.PolrAPIHostname, API_KEY = Program.UploadersConfig.PolrAPIKey }; break; case UrlShortenerType.CustomURLShortener: CustomUploaderItem customUploader = GetCustomUploader(Program.UploadersConfig.CustomURLShortenerSelected); if (customUploader != null) { urlShortener = new CustomURLShortener(customUploader); } break; } if (urlShortener != null) { return urlShortener.ShortenURL(url); } return null; }
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 = ShareXYZResources.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("ShareXYZ text upload test", "Test.txt"); result.Errors = textUploader.Errors; break; case CustomUploaderType.File: using (Stream stream = ShareXYZResources.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; } }); }