From 142c68197c9f7fd04f2ab2919d3b6fa21afd8294 Mon Sep 17 00:00:00 2001 From: Jaex Date: Tue, 8 Jan 2019 17:35:17 +0300 Subject: [PATCH] Parse request URL --- ShareX.HelpersLib/Helpers/URLHelpers.cs | 2 +- .../CustomUploader/CustomUploaderItem.cs | 22 +- .../Forms/UploadersConfigForm.Designer.cs | 2 +- .../Forms/UploadersConfigForm.resx | 261 +++++++++--------- 4 files changed, 149 insertions(+), 138 deletions(-) diff --git a/ShareX.HelpersLib/Helpers/URLHelpers.cs b/ShareX.HelpersLib/Helpers/URLHelpers.cs index 4ce5c9afe..8a1f6c684 100644 --- a/ShareX.HelpersLib/Helpers/URLHelpers.cs +++ b/ShareX.HelpersLib/Helpers/URLHelpers.cs @@ -519,7 +519,7 @@ public static NameValueCollection ParseQueryString(string url) { int index = url.IndexOf("?"); - if (index > -1) + if (index > -1 && index + 1 < url.Length) { string query = url.Substring(index + 1); return HttpUtility.ParseQueryString(query); diff --git a/ShareX.UploadersLib/CustomUploader/CustomUploaderItem.cs b/ShareX.UploadersLib/CustomUploader/CustomUploaderItem.cs index f64f78c83..b54e67a50 100644 --- a/ShareX.UploadersLib/CustomUploader/CustomUploaderItem.cs +++ b/ShareX.UploadersLib/CustomUploader/CustomUploaderItem.cs @@ -128,10 +128,13 @@ public string GetRequestURL(CustomUploaderInput input) throw new Exception(Resources.CustomUploaderItem_GetRequestURL_RequestURLMustBeConfigured); } - string url = URLHelpers.FixPrefix(RequestURL); + CustomUploaderParser parser = new CustomUploaderParser(input); + parser.URLEncode = true; + string url = parser.Parse(RequestURL); + + url = URLHelpers.FixPrefix(url); Dictionary parameters = GetParameters(input); - return URLHelpers.CreateQueryString(url, parameters); } @@ -245,6 +248,8 @@ public void ParseResponse(UploadResult result, CustomUploaderInput input, bool i public void CheckBackwardCompatibility() { + CheckRequestURL(); + if (string.IsNullOrEmpty(Version) || Helpers.CompareVersion(Version, "12.3.1") <= 0) { if (RequestType == HttpMethod.POST) @@ -261,8 +266,19 @@ public void CheckBackwardCompatibility() Arguments = null; } } + } + + Version = Application.ProductVersion; + } + + private void CheckRequestURL() + { + if (!string.IsNullOrEmpty(RequestURL)) + { + RequestURL = URLHelpers.FixPrefix(RequestURL); NameValueCollection nvc = URLHelpers.ParseQueryString(RequestURL); + if (nvc != null && nvc.Count > 0) { if (Parameters == null) @@ -290,8 +306,6 @@ public void CheckBackwardCompatibility() RequestURL = URLHelpers.RemoveQueryString(RequestURL); } } - - Version = Application.ProductVersion; } } } \ No newline at end of file diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs b/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs index bf7bc6ea0..ca8a75045 100644 --- a/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs +++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs @@ -1115,8 +1115,8 @@ private void InitializeComponent() this.tpCustomUploaderRequest.Controls.Add(this.cbCustomUploaderRequestFormat); this.tpCustomUploaderRequest.Controls.Add(this.lblCustomUploaderRequestMethod); this.tpCustomUploaderRequest.Controls.Add(this.lblCustomUploaderRequestFormat); - this.tpCustomUploaderRequest.Controls.Add(this.pCustomUploaderBodyData); this.tpCustomUploaderRequest.Controls.Add(this.pCustomUploaderBodyArguments); + this.tpCustomUploaderRequest.Controls.Add(this.pCustomUploaderBodyData); resources.ApplyResources(this.tpCustomUploaderRequest, "tpCustomUploaderRequest"); this.tpCustomUploaderRequest.Name = "tpCustomUploaderRequest"; this.tpCustomUploaderRequest.UseVisualStyleBackColor = true; diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.resx index 3a0cd6d73..5c5bbcb6f 100644 --- a/ShareX.UploadersLib/Forms/UploadersConfigForm.resx +++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.resx @@ -1427,135 +1427,6 @@ when you made the application key. 19 - - NoControl - - - 0, 208 - - - 112, 24 - - - 1 - - - Beautify - - - btnCustomUploaderDataBeautify - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pCustomUploaderBodyData - - - 0 - - - NoControl - - - 120, 208 - - - 112, 24 - - - 2 - - - Minify - - - btnCustomUploaderDataMinify - - - System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pCustomUploaderBodyData - - - 1 - - - Fill - - - 2, 2 - - - 226, 186 - - - 0 - - - - - - False - - - rtbCustomUploaderData - - - System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pCustomUploaderData - - - 0 - - - 0, 8 - - - 2, 2, 2, 2 - - - 232, 192 - - - 0 - - - pCustomUploaderData - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - pCustomUploaderBodyData - - - 2 - - - 264, 96 - - - 240, 368 - - - 21 - - - pCustomUploaderBodyData - - - System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tpCustomUploaderRequest - - - 20 - NoControl @@ -1815,6 +1686,135 @@ when you made the application key. tpCustomUploaderRequest + 20 + + + NoControl + + + 0, 208 + + + 112, 24 + + + 1 + + + Beautify + + + btnCustomUploaderDataBeautify + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pCustomUploaderBodyData + + + 0 + + + NoControl + + + 120, 208 + + + 112, 24 + + + 2 + + + Minify + + + btnCustomUploaderDataMinify + + + System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pCustomUploaderBodyData + + + 1 + + + Fill + + + 2, 2 + + + 226, 186 + + + 0 + + + + + + False + + + rtbCustomUploaderData + + + System.Windows.Forms.RichTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pCustomUploaderData + + + 0 + + + 0, 8 + + + 2, 2, 2, 2 + + + 232, 192 + + + 0 + + + pCustomUploaderData + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + pCustomUploaderBodyData + + + 2 + + + 264, 96 + + + 240, 368 + + + 21 + + + pCustomUploaderBodyData + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + tpCustomUploaderRequest + + 21 @@ -17667,9 +17667,6 @@ Using an encrypted library disables sharing. 1000, 633 - - NoControl - 840, 572