From 65e07b618c5a478ede2bbdbd44e59522d4f19f33 Mon Sep 17 00:00:00 2001 From: Jaex Date: Wed, 7 May 2014 19:55:42 +0300 Subject: [PATCH] Better url file checking --- HelpersLib/Helpers/Helpers.cs | 13 ++++++++++ ShareX/Forms/TaskSettingsForm.Designer.cs | 4 +-- ShareX/UploadManager.cs | 31 +++++++++++++++-------- 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/HelpersLib/Helpers/Helpers.cs b/HelpersLib/Helpers/Helpers.cs index e0b69f1c7..3b2515796 100644 --- a/HelpersLib/Helpers/Helpers.cs +++ b/HelpersLib/Helpers/Helpers.cs @@ -854,5 +854,18 @@ public static Size MeasureText(string text, Font font, int width) return g.MeasureString(text, font, width).ToSize(); } } + + public static string GetURLFilename(string url) + { + Uri uri = new Uri(url); + + try + { + return Path.GetFileName(uri.LocalPath); + } + catch { } + + return null; + } } } \ No newline at end of file diff --git a/ShareX/Forms/TaskSettingsForm.Designer.cs b/ShareX/Forms/TaskSettingsForm.Designer.cs index 6d9199054..34c4fd9a6 100644 --- a/ShareX/Forms/TaskSettingsForm.Designer.cs +++ b/ShareX/Forms/TaskSettingsForm.Designer.cs @@ -1630,9 +1630,9 @@ private void InitializeComponent() this.chkClipboardUploadContents.AutoSize = true; this.chkClipboardUploadContents.Location = new System.Drawing.Point(16, 16); this.chkClipboardUploadContents.Name = "chkClipboardUploadContents"; - this.chkClipboardUploadContents.Size = new System.Drawing.Size(345, 17); + this.chkClipboardUploadContents.Size = new System.Drawing.Size(308, 17); this.chkClipboardUploadContents.TabIndex = 3; - this.chkClipboardUploadContents.Text = "If clipboard contains a image/text URL then download it and upload"; + this.chkClipboardUploadContents.Text = "If clipboard contains a file URL then download it and upload"; this.chkClipboardUploadContents.UseVisualStyleBackColor = true; this.chkClipboardUploadContents.CheckedChanged += new System.EventHandler(this.chkClipboardUploadContents_CheckedChanged); // diff --git a/ShareX/UploadManager.cs b/ShareX/UploadManager.cs index 7746303e2..ef3029d99 100644 --- a/ShareX/UploadManager.cs +++ b/ShareX/UploadManager.cs @@ -173,17 +173,28 @@ public static void ClipboardUpload(TaskSettings taskSettings = null) if (!string.IsNullOrEmpty(text)) { string url = text.Trim(); - bool isURL = Helpers.IsValidURLRegex(url); - if (taskSettings.UploadSettings.ClipboardUploadURLContents && isURL && (Helpers.IsImageFile(url) || Helpers.IsTextFile(url))) + if (Helpers.IsValidURLRegex(url)) { - DownloadAndUploadFile(url, taskSettings); + if (taskSettings.UploadSettings.ClipboardUploadURLContents) + { + string filename = Helpers.GetURLFilename(url); + + if (!string.IsNullOrEmpty(filename)) + { + DownloadAndUploadFile(url, filename, taskSettings); + return; + } + } + + if (taskSettings.UploadSettings.ClipboardUploadShortenURL) + { + ShortenURL(url, taskSettings); + return; + } } - else if (taskSettings.UploadSettings.ClipboardUploadShortenURL && isURL) - { - ShortenURL(url, taskSettings); - } - else if (taskSettings.UploadSettings.ClipboardUploadAutoIndexFolder && text.Length <= 260 && Directory.Exists(text)) + + if (taskSettings.UploadSettings.ClipboardUploadAutoIndexFolder && text.Length <= 260 && Directory.Exists(text)) { IndexFolder(text, taskSettings); } @@ -319,7 +330,7 @@ public static void ShortenURL(string url, TaskSettings taskSettings = null) } } - public static void DownloadAndUploadFile(string url, TaskSettings taskSettings = null) + public static void DownloadAndUploadFile(string url, string filename, TaskSettings taskSettings = null) { if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings(); @@ -327,7 +338,7 @@ public static void DownloadAndUploadFile(string url, TaskSettings taskSettings = Helpers.AsyncJob(() => { - downloadPath = TaskHelpers.CheckFilePath(taskSettings.CaptureFolder, Path.GetFileName(url), taskSettings); + downloadPath = TaskHelpers.CheckFilePath(taskSettings.CaptureFolder, filename, taskSettings); using (WebClient wc = new WebClient()) {