From ca698eaa6372e51fbbcaa4ee1d260c2a2ae7a1f7 Mon Sep 17 00:00:00 2001 From: Jaex Date: Thu, 5 Jun 2014 22:47:36 +0300 Subject: [PATCH] Some code changes, using NameParser.Parse static method --- HelpersLib/NameParser.cs | 12 +++--- ShareX/Forms/TaskSettingsForm.cs | 4 ++ ShareX/Program.cs | 2 +- ShareX/Properties/AssemblyInfo.cs | 4 +- ShareX/UploadTask.cs | 8 +--- UploadersLib/FileUploaders/AmazonS3.cs | 5 +-- UploadersLib/FileUploaders/Copy.cs | 38 +++++++++---------- UploadersLib/FileUploaders/Dropbox.cs | 1 - UploadersLib/FileUploaders/FTP/FTPAccount.cs | 6 +-- .../Localhost/LocalhostAccount.cs | 6 +-- .../GUI/UploadersConfigForm.Designer.cs | 28 +++++++------- UploadersLib/GUI/UploadersConfigForm.cs | 4 +- UploadersLib/GUI/UploadersConfigFormHelper.cs | 10 +++-- .../HelperClasses/CustomUploaderItem.cs | 3 +- 14 files changed, 63 insertions(+), 68 deletions(-) diff --git a/HelpersLib/NameParser.cs b/HelpersLib/NameParser.cs index 39f4a7d1b..ee43f1020 100644 --- a/HelpersLib/NameParser.cs +++ b/HelpersLib/NameParser.cs @@ -108,12 +108,11 @@ public class NameParser { public NameParserType Type { get; private set; } public int MaxNameLength { get; set; } + public int MaxTitleLength { get; set; } public int AutoIncrementNumber { get; set; } // %i public Image Picture { get; set; } // %width, %height public string WindowText { get; set; } // %t public string ProcessName { get; set; } // %pn - public int MaxTitleLength { get; set; } - public DateTime CustomDate { get; set; } protected NameParser() { @@ -124,6 +123,11 @@ public NameParser(NameParserType nameParserType) Type = nameParserType; } + public static string Parse(NameParserType nameParserType, string pattern) + { + return new NameParser(nameParserType).Parse(pattern); + } + public string Parse(string pattern) { if (string.IsNullOrEmpty(pattern)) @@ -160,10 +164,6 @@ public string Parse(string pattern) sb.Replace(ReplacementVariables.height.ToPrefixString(), height); DateTime dt = DateTime.Now; - if (CustomDate != DateTime.MinValue) - { - dt = CustomDate; - } sb.Replace(ReplacementVariables.mon2.ToPrefixString(), CultureInfo.InvariantCulture.DateTimeFormat.GetMonthName(dt.Month)) .Replace(ReplacementVariables.mon.ToPrefixString(), CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(dt.Month)) diff --git a/ShareX/Forms/TaskSettingsForm.cs b/ShareX/Forms/TaskSettingsForm.cs index 6ac9f0343..c0b299959 100644 --- a/ShareX/Forms/TaskSettingsForm.cs +++ b/ShareX/Forms/TaskSettingsForm.cs @@ -916,6 +916,7 @@ private void cbFileUploadUseNamePattern_CheckedChanged(object sender, EventArgs private void txtNameFormatPatternActiveWindow_TextChanged(object sender, EventArgs e) { TaskSettings.UploadSettings.NameFormatPatternActiveWindow = txtNameFormatPatternActiveWindow.Text; + NameParser nameParser = new NameParser(NameParserType.FileName) { AutoIncrementNumber = Program.Settings.NameParserAutoIncrementNumber, @@ -924,6 +925,7 @@ private void txtNameFormatPatternActiveWindow_TextChanged(object sender, EventAr MaxNameLength = TaskSettings.AdvancedSettings.NamePatternMaxLength, MaxTitleLength = TaskSettings.AdvancedSettings.NamePatternMaxTitleLength }; + lblNameFormatPatternPreviewActiveWindow.Text = "Preview: " + nameParser.Parse(TaskSettings.UploadSettings.NameFormatPatternActiveWindow); } @@ -935,12 +937,14 @@ private void btnResetAutoIncrementNumber_Click(object sender, EventArgs e) private void txtNameFormatPattern_TextChanged(object sender, EventArgs e) { TaskSettings.UploadSettings.NameFormatPattern = txtNameFormatPattern.Text; + NameParser nameParser = new NameParser(NameParserType.FileName) { AutoIncrementNumber = Program.Settings.NameParserAutoIncrementNumber, MaxNameLength = TaskSettings.AdvancedSettings.NamePatternMaxLength, MaxTitleLength = TaskSettings.AdvancedSettings.NamePatternMaxTitleLength }; + lblNameFormatPatternPreview.Text = "Preview: " + nameParser.Parse(TaskSettings.UploadSettings.NameFormatPattern); } diff --git a/ShareX/Program.cs b/ShareX/Program.cs index 9d9f55e1a..940c006c1 100644 --- a/ShareX/Program.cs +++ b/ShareX/Program.cs @@ -211,7 +211,7 @@ public static string ScreenshotsFolder { get { - string subFolderName = new NameParser(NameParserType.FolderPath).Parse(Settings.SaveImageSubFolderPattern); + string subFolderName = NameParser.Parse(NameParserType.FolderPath, Settings.SaveImageSubFolderPattern); return Path.Combine(ScreenshotsParentFolder, subFolderName); } } diff --git a/ShareX/Properties/AssemblyInfo.cs b/ShareX/Properties/AssemblyInfo.cs index 17db1a15d..06d1c6d1b 100644 --- a/ShareX/Properties/AssemblyInfo.cs +++ b/ShareX/Properties/AssemblyInfo.cs @@ -11,5 +11,5 @@ [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("82E6AC09-0FEF-4390-AD9F-0DD3F5561EFC")] -[assembly: AssemblyVersion("9.1.0")] -[assembly: AssemblyFileVersion("9.1.0")] \ No newline at end of file +[assembly: AssemblyVersion("9.0.0")] +[assembly: AssemblyFileVersion("9.0.0")] \ No newline at end of file diff --git a/ShareX/UploadTask.cs b/ShareX/UploadTask.cs index 75ada4dc5..dfc73bc07 100644 --- a/ShareX/UploadTask.cs +++ b/ShareX/UploadTask.cs @@ -806,21 +806,17 @@ public UploadResult UploadFile(Stream stream, string fileName) switch (fileDestination) { case FileDestination.Dropbox: - NameParser parser = new NameParser(NameParserType.URL); - string uploadPath = parser.Parse(Dropbox.TidyUploadPath(Program.UploadersConfig.DropboxUploadPath)); fileUploader = new Dropbox(Program.UploadersConfig.DropboxOAuthInfo, Program.UploadersConfig.DropboxAccountInfo) { - UploadPath = uploadPath, + UploadPath = NameParser.Parse(NameParserType.URL, Dropbox.TidyUploadPath(Program.UploadersConfig.DropboxUploadPath)), AutoCreateShareableLink = Program.UploadersConfig.DropboxAutoCreateShareableLink, ShareURLType = Program.UploadersConfig.DropboxURLType }; break; case FileDestination.Copy: - parser = new NameParser(NameParserType.URL); - uploadPath = parser.Parse(Copy.TidyUploadPath(Program.UploadersConfig.CopyUploadPath)); fileUploader = new Copy(Program.UploadersConfig.CopyOAuthInfo, Program.UploadersConfig.CopyAccountInfo) { - UploadPath = uploadPath + UploadPath = NameParser.Parse(NameParserType.URL, Copy.TidyUploadPath(Program.UploadersConfig.CopyUploadPath)) }; break; case FileDestination.GoogleDrive: diff --git a/UploadersLib/FileUploaders/AmazonS3.cs b/UploadersLib/FileUploaders/AmazonS3.cs index aabcaeb8a..bc65963f7 100644 --- a/UploadersLib/FileUploaders/AmazonS3.cs +++ b/UploadersLib/FileUploaders/AmazonS3.cs @@ -99,9 +99,8 @@ private string CreateSignature(string secretKey, byte[] policyBytes) private string GetObjectKey(string fileName) { - NameParser parser = new NameParser(NameParserType.FolderPath); - string objectPrefix = S3Settings.ObjectPrefix.Trim('/'); - return Helpers.CombineURL(parser.Parse(objectPrefix), fileName); + string objectPrefix = NameParser.Parse(NameParserType.FolderPath, S3Settings.ObjectPrefix.Trim('/')); + return Helpers.CombineURL(objectPrefix, fileName); } private string GetObjectURL(string objectName) diff --git a/UploadersLib/FileUploaders/Copy.cs b/UploadersLib/FileUploaders/Copy.cs index 5a31dd0b0..4f63b8042 100644 --- a/UploadersLib/FileUploaders/Copy.cs +++ b/UploadersLib/FileUploaders/Copy.cs @@ -38,7 +38,6 @@ public sealed class Copy : FileUploader, IOAuth { public OAuthInfo AuthInfo { get; set; } public CopyAccountInfo AccountInfo { get; set; } - public string UploadPath { get; set; } private const string APIVersion = "1"; @@ -60,9 +59,7 @@ public sealed class Copy : FileUploader, IOAuth private const string URLAuthorize = "https://www.copy.com/applications/authorize"; private const string URLAccessToken = "https://api.copy.com/oauth/access"; - private readonly NameValueCollection APIHeaders = new NameValueCollection { - { "X-Api-Version", APIVersion } - }; + private readonly NameValueCollection APIHeaders = new NameValueCollection { { "X-Api-Version", APIVersion } }; public Copy(OAuthInfo oauth) { @@ -79,8 +76,7 @@ public Copy(OAuthInfo oauth, CopyAccountInfo accountInfo) // https://developers.copy.com/console public string GetAuthorizationURL() { - return GetAuthorizationURL(URLRequestToken, URLAuthorize, AuthInfo - , new Dictionary { { "oauth_callback", Links.URL_CALLBACK } }); + return GetAuthorizationURL(URLRequestToken, URLAuthorize, AuthInfo, new Dictionary { { "oauth_callback", Links.URL_CALLBACK } }); } public bool GetAccessToken(string verificationCode = null) @@ -134,7 +130,7 @@ public bool DownloadFile(string path, Stream downloadStream) }*/ // https://developers.copy.com/documentation#api-calls/filesystem - Create File or Directory - // POST https://api.copy.com/rest/files/PATH/TO/FILE?overwrite=true + // POST https://api.copy.com/rest/files/PATH/TO/FILE?overwrite=true public UploadResult UploadFile(Stream stream, string path, string fileName) { if (!OAuthInfo.CheckOAuth(AuthInfo)) @@ -159,6 +155,7 @@ public UploadResult UploadFile(Stream stream, string path, string fileName) if (content != null) { + AllowReportProgress = false; result.URL = CreatePublicURL(content.objects[0].path); } } @@ -343,12 +340,13 @@ public override UploadResult Upload(Stream stream, string fileName) return UploadFile(stream, UploadPath, fileName); } - /* Link types: - * Shortened: http://copy.com/BWr9OswktCLl - * Extended: http://www.copy.com/s/BWr9OswktCLl/2014-06-05_17-00-01.mp4 - * Direct: http://copy.com/BWr9OswktCLl/2014-06-05_17-00-01.mp4 - */ - public string CreatePublicURL(string path) + /// + /// Link types: + /// Shortened: http://copy.com/BWr9OswktCLl + /// Extended: http://www.copy.com/s/BWr9OswktCLl/2014-06-05_17-00-01.mp4 + /// Direct: http://copy.com/BWr9OswktCLl/2014-06-05_17-00-01.mp4 + /// + public string CreatePublicURL(string path) // TODO: Add link type parameter { path = path.Trim('/'); @@ -360,7 +358,7 @@ public string CreatePublicURL(string path) publicLink.@public = true; publicLink.name = "ShareX"; publicLink.paths = new string[] { path }; - + string content = JsonConvert.SerializeObject(publicLink); string response = SendRequest(HttpMethod.POST, query, content, null, ResponseType.Text, APIHeaders); @@ -369,7 +367,8 @@ public string CreatePublicURL(string path) { return JsonConvert.DeserializeObject(response).url_short; } - return ""; + + return string.Empty; } public string GetPublicURL(string path) @@ -377,14 +376,15 @@ public string GetPublicURL(string path) path = path.Trim('/'); CopyContentInfo fileInfo = GetMetadata(path); - foreach(CopyLinksInfo link in fileInfo.links) + foreach (CopyLinksInfo link in fileInfo.links) { - if(!link.expired) + if (!link.expired) { return link.url_short; } } - return ""; + + return string.Empty; } public static string TidyUploadPath(string uploadPath) @@ -437,7 +437,7 @@ public class CopyLinksInfo public string permissions { get; set; } } - public class CopyContentInfo //https://api.copy.com/rest/meta //also works on rest/meta/copy + public class CopyContentInfo // https://api.copy.com/rest/meta also works on rest/meta/copy { public string id { get; set; } // Internal copy name public string path { get; set; } // hmm? diff --git a/UploadersLib/FileUploaders/Dropbox.cs b/UploadersLib/FileUploaders/Dropbox.cs index cf7b8a202..f5b3c7fa9 100644 --- a/UploadersLib/FileUploaders/Dropbox.cs +++ b/UploadersLib/FileUploaders/Dropbox.cs @@ -37,7 +37,6 @@ public sealed class Dropbox : FileUploader, IOAuth { public OAuthInfo AuthInfo { get; set; } public DropboxAccountInfo AccountInfo { get; set; } - public string UploadPath { get; set; } public bool AutoCreateShareableLink { get; set; } public DropboxURLType ShareURLType { get; set; } diff --git a/UploadersLib/FileUploaders/FTP/FTPAccount.cs b/UploadersLib/FileUploaders/FTP/FTPAccount.cs index 849273a75..b5180e59f 100644 --- a/UploadersLib/FileUploaders/FTP/FTPAccount.cs +++ b/UploadersLib/FileUploaders/FTP/FTPAccount.cs @@ -140,8 +140,7 @@ public FTPAccount() public string GetSubFolderPath(string filename = null) { - NameParser parser = new NameParser(NameParserType.URL); - string path = parser.Parse(SubFolderPath.Replace("%host", Host)); + string path = NameParser.Parse(NameParserType.URL, SubFolderPath.Replace("%host", Host)); return Helpers.CombineURL(path, filename); } @@ -156,8 +155,7 @@ public string GetHttpHomePath() HttpHomePath = URLHelpers.RemovePrefixes(HttpHomePath); - NameParser nameParser = new NameParser(NameParserType.URL); - return nameParser.Parse(HttpHomePath.Replace("%host", Host)); + return NameParser.Parse(NameParserType.URL, HttpHomePath.Replace("%host", Host)); } public string GetUriPath(string filename) diff --git a/UploadersLib/FileUploaders/Localhost/LocalhostAccount.cs b/UploadersLib/FileUploaders/Localhost/LocalhostAccount.cs index 07e76be23..71fa56185 100644 --- a/UploadersLib/FileUploaders/Localhost/LocalhostAccount.cs +++ b/UploadersLib/FileUploaders/Localhost/LocalhostAccount.cs @@ -112,8 +112,7 @@ public LocalhostAccount() public string GetSubFolderPath() { - NameParser parser = new NameParser(NameParserType.URL); - return parser.Parse(SubFolderPath.Replace("%host", LocalhostRoot)); + return NameParser.Parse(NameParserType.URL, SubFolderPath.Replace("%host", LocalhostRoot)); } public string GetHttpHomePath() @@ -127,8 +126,7 @@ public string GetHttpHomePath() HttpHomePath = URLHelpers.RemovePrefixes(HttpHomePath); - NameParser parser = new NameParser(NameParserType.URL); - return parser.Parse(HttpHomePath.Replace("%host", LocalhostRoot)); + return NameParser.Parse(NameParserType.URL, HttpHomePath.Replace("%host", LocalhostRoot)); } public string GetUriPath(string filename) diff --git a/UploadersLib/GUI/UploadersConfigForm.Designer.cs b/UploadersLib/GUI/UploadersConfigForm.Designer.cs index 16d9ff65e..27f767694 100644 --- a/UploadersLib/GUI/UploadersConfigForm.Designer.cs +++ b/UploadersLib/GUI/UploadersConfigForm.Designer.cs @@ -129,12 +129,12 @@ private void InitializeComponent() this.btnDropboxOpenAuthorize = new System.Windows.Forms.Button(); this.txtDropboxPath = new System.Windows.Forms.TextBox(); this.tpCopy = new System.Windows.Forms.TabPage(); - this.oAuthCopy = new UploadersLib.GUI.OAuth2Control(); this.pbCopyLogo = new System.Windows.Forms.PictureBox(); this.btnCopyRegister = new System.Windows.Forms.Button(); this.lblCopyStatus = new System.Windows.Forms.Label(); this.lblCopyPath = new System.Windows.Forms.Label(); this.txtCopyPath = new System.Windows.Forms.TextBox(); + this.oAuthCopy = new UploadersLib.GUI.OAuth2Control(); this.tpFTP = new System.Windows.Forms.TabPage(); this.btnFtpClient = new System.Windows.Forms.Button(); this.btnFTPExport = new System.Windows.Forms.Button(); @@ -1476,18 +1476,6 @@ private void InitializeComponent() this.tpCopy.Text = "Copy"; this.tpCopy.UseVisualStyleBackColor = true; // - // oAuthCopy - // - this.oAuthCopy.IsRefreshable = false; - this.oAuthCopy.Location = new System.Drawing.Point(16, 99); - this.oAuthCopy.LoginStatus = false; - this.oAuthCopy.Name = "oAuthCopy"; - this.oAuthCopy.Size = new System.Drawing.Size(328, 173); - this.oAuthCopy.Status = "Status: Login required."; - this.oAuthCopy.TabIndex = 2; - this.oAuthCopy.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oAuthCopy_OpenButtonClicked); - this.oAuthCopy.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oAuthCopy_CompleteButtonClicked); - // // pbCopyLogo // this.pbCopyLogo.Cursor = System.Windows.Forms.Cursors.Hand; @@ -1529,12 +1517,24 @@ private void InitializeComponent() // // txtCopyPath // - this.txtCopyPath.Location = new System.Drawing.Point(81, 272); + this.txtCopyPath.Location = new System.Drawing.Point(88, 272); this.txtCopyPath.Name = "txtCopyPath"; this.txtCopyPath.Size = new System.Drawing.Size(272, 20); this.txtCopyPath.TabIndex = 4; this.txtCopyPath.TextChanged += new System.EventHandler(this.txtCopyPath_TextChanged); // + // oAuthCopy + // + this.oAuthCopy.IsRefreshable = false; + this.oAuthCopy.Location = new System.Drawing.Point(16, 99); + this.oAuthCopy.LoginStatus = false; + this.oAuthCopy.Name = "oAuthCopy"; + this.oAuthCopy.Size = new System.Drawing.Size(328, 173); + this.oAuthCopy.Status = "Status: Login required."; + this.oAuthCopy.TabIndex = 2; + this.oAuthCopy.OpenButtonClicked += new UploadersLib.GUI.OAuth2Control.OpenButtonClickedEventHandler(this.oAuthCopy_OpenButtonClicked); + this.oAuthCopy.CompleteButtonClicked += new UploadersLib.GUI.OAuth2Control.CompleteButtonClickedEventHandler(this.oAuthCopy_CompleteButtonClicked); + // // tpFTP // this.tpFTP.Controls.Add(this.btnFtpClient); diff --git a/UploadersLib/GUI/UploadersConfigForm.cs b/UploadersLib/GUI/UploadersConfigForm.cs index 6e4ab7203..464a43850 100644 --- a/UploadersLib/GUI/UploadersConfigForm.cs +++ b/UploadersLib/GUI/UploadersConfigForm.cs @@ -297,14 +297,14 @@ public void LoadSettings(UploadersConfig uploadersConfig) // Copy - txtCopyPath.Text = Config.CopyUploadPath; - if (OAuthInfo.CheckOAuth(Config.CopyOAuthInfo)) { oAuthCopy.Status = "Login successful."; oAuthCopy.LoginStatus = true; } + txtCopyPath.Text = Config.CopyUploadPath; + // Google Drive if (OAuth2Info.CheckOAuth(Config.GoogleDriveOAuth2Info)) diff --git a/UploadersLib/GUI/UploadersConfigFormHelper.cs b/UploadersLib/GUI/UploadersConfigFormHelper.cs index d09f237ee..e50ba22c0 100644 --- a/UploadersLib/GUI/UploadersConfigFormHelper.cs +++ b/UploadersLib/GUI/UploadersConfigFormHelper.cs @@ -541,7 +541,7 @@ private void UpdateDropboxStatus() private string GetDropboxUploadPath() { - return new NameParser(NameParserType.URL).Parse(Dropbox.TidyUploadPath(Config.DropboxUploadPath)); + return NameParser.Parse(NameParserType.URL, Dropbox.TidyUploadPath(Config.DropboxUploadPath)); } #endregion Dropbox @@ -577,8 +577,8 @@ public void CopyAuthComplete(string code) { try { - if (Config.CopyOAuthInfo != null && !string.IsNullOrEmpty(Config.CopyOAuthInfo.AuthToken) - && !string.IsNullOrEmpty(Config.CopyOAuthInfo.AuthSecret) && !string.IsNullOrEmpty(code)) + if (Config.CopyOAuthInfo != null && !string.IsNullOrEmpty(Config.CopyOAuthInfo.AuthToken) && + !string.IsNullOrEmpty(Config.CopyOAuthInfo.AuthSecret) && !string.IsNullOrEmpty(code)) { Copy copy = new Copy(Config.CopyOAuthInfo); bool result = copy.GetAccessToken(code); @@ -592,6 +592,7 @@ public void CopyAuthComplete(string code) Config.CopyAccountInfo = account; Config.CopyUploadPath = txtCopyPath.Text; UpdateCopyStatus(); + oAuthCopy.Status = "Login successful."; MessageBox.Show("Login successful.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } @@ -600,6 +601,7 @@ public void CopyAuthComplete(string code) } else { + oAuthCopy.Status = "Login failed."; MessageBox.Show("Login failed.", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); } } @@ -638,7 +640,7 @@ private void UpdateCopyStatus() private string GetCopyUploadPath() { - return new NameParser(NameParserType.URL).Parse(Copy.TidyUploadPath(Config.CopyUploadPath)); + return NameParser.Parse(NameParserType.URL, Copy.TidyUploadPath(Config.CopyUploadPath)); } #endregion Copy diff --git a/UploadersLib/HelperClasses/CustomUploaderItem.cs b/UploadersLib/HelperClasses/CustomUploaderItem.cs index cbf7e8fe8..01650d32d 100644 --- a/UploadersLib/HelperClasses/CustomUploaderItem.cs +++ b/UploadersLib/HelperClasses/CustomUploaderItem.cs @@ -76,8 +76,7 @@ public override string ToString() value = value.Replace("$input$", input); } - NameParser parser = new NameParser(NameParserType.Text); - value = parser.Parse(value); + value = NameParser.Parse(NameParserType.Text, value); arguments.Add(arg.Key, value); }