From 21fcf2d16d3f05001ecda47d79bd6e68d0a8a84d Mon Sep 17 00:00:00 2001 From: Jaex Date: Thu, 30 Jun 2016 23:35:24 +0300 Subject: [PATCH] Use API v1 account info in Dropbox status label --- ShareX.UploadersLib/FileUploaders/Dropbox.cs | 87 ++++++++----------- ShareX.UploadersLib/FileUploaders/FTP.cs | 4 - ShareX.UploadersLib/FileUploaders/SFTP.cs | 4 - .../Forms/UploadersConfigFormHelper.cs | 19 ++-- 4 files changed, 42 insertions(+), 72 deletions(-) diff --git a/ShareX.UploadersLib/FileUploaders/Dropbox.cs b/ShareX.UploadersLib/FileUploaders/Dropbox.cs index 760636cd3..318bcb93d 100644 --- a/ShareX.UploadersLib/FileUploaders/Dropbox.cs +++ b/ShareX.UploadersLib/FileUploaders/Dropbox.cs @@ -106,6 +106,18 @@ public Dropbox(OAuth2Info oauth) AuthInfo = oauth; } + public override UploadResult Upload(Stream stream, string fileName) + { + if (OAuth2Info.CheckOAuth(AuthInfo) && !AutoCreateShareableLink) + { + string url = GetPublicURL(URLHelpers.CombineURL(UploadPath, fileName)); + + OnEarlyURLCopyRequested(url); + } + + return UploadFile(stream, UploadPath, fileName, AutoCreateShareableLink, ShareURLType); + } + public string GetAuthorizationURL() { Dictionary args = new Dictionary(); @@ -146,7 +158,28 @@ private NameValueCollection GetAuthHeaders() return headers; } - #region Dropbox accounts + public static string VerifyPath(string path, string filename = null) + { + if (!string.IsNullOrEmpty(path)) + { + path = path.Trim().Replace('\\', '/').Trim('/'); + path = URLHelpers.AddSlash(path, SlashType.Prefix); + + if (!string.IsNullOrEmpty(filename)) + { + path = URLHelpers.CombineURL(path, filename); + } + + return path; + } + + if (!string.IsNullOrEmpty(filename)) + { + return filename; + } + + return ""; + } public DropboxAccount GetCurrentAccount() { @@ -170,10 +203,6 @@ public DropboxAccount GetCurrentAccount() return account; } - #endregion Dropbox accounts - - #region Files and metadata - public bool DownloadFile(string path, Stream downloadStream) { if (!string.IsNullOrEmpty(path) && OAuth2Info.CheckOAuth(AuthInfo)) @@ -284,7 +313,7 @@ public string CreateShareableLink(string path, DropboxURLType urlType) } }); - // TODO: args.Add("short_url", urlType == DropboxURLType.Shortened ? "true" : "false"); + // TODO: Missing: args.Add("short_url", urlType == DropboxURLType.Shortened ? "true" : "false"); string response = SendRequestJSON(URLCreateSharedLink, json, GetAuthHeaders()); @@ -316,10 +345,6 @@ public string CreateShareableLink(string path, DropboxURLType urlType) return null; } - #endregion Files and metadata - - #region File operations - public DropboxMetadata Copy(string fromPath, string toPath) { DropboxMetadata metadata = null; @@ -410,48 +435,6 @@ public DropboxMetadata Move(string fromPath, string toPath) return metadata; } - #endregion File operations - - public override UploadResult Upload(Stream stream, string fileName) - { - CheckEarlyURLCopy(UploadPath, fileName); - - return UploadFile(stream, UploadPath, fileName, AutoCreateShareableLink, ShareURLType); - } - - private void CheckEarlyURLCopy(string path, string fileName) - { - if (OAuth2Info.CheckOAuth(AuthInfo) && !AutoCreateShareableLink) - { - string url = GetPublicURL(URLHelpers.CombineURL(path, fileName)); - - OnEarlyURLCopyRequested(url); - } - } - - public static string VerifyPath(string path, string filename = null) - { - if (!string.IsNullOrEmpty(path)) - { - path = path.Trim().Replace('\\', '/').Trim('/'); - path = URLHelpers.AddSlash(path, SlashType.Prefix); - - if (!string.IsNullOrEmpty(filename)) - { - path = URLHelpers.CombineURL(path, filename); - } - - return path; - } - - if (!string.IsNullOrEmpty(filename)) - { - return filename; - } - - return ""; - } - public string GetPublicURL(string path) { return GetPublicURL(AccountInfo.Uid.ToString(), path); diff --git a/ShareX.UploadersLib/FileUploaders/FTP.cs b/ShareX.UploadersLib/FileUploaders/FTP.cs index 584e4a384..ddc29707c 100644 --- a/ShareX.UploadersLib/FileUploaders/FTP.cs +++ b/ShareX.UploadersLib/FileUploaders/FTP.cs @@ -161,8 +161,6 @@ public FTP(FTPAccount account) } } - #region FileUploader methods - public override UploadResult Upload(Stream stream, string fileName) { UploadResult result = new UploadResult(); @@ -209,8 +207,6 @@ public override void StopUpload() } } - #endregion FileUploader methods - public bool Connect() { if (!client.IsConnected) diff --git a/ShareX.UploadersLib/FileUploaders/SFTP.cs b/ShareX.UploadersLib/FileUploaders/SFTP.cs index 3f38a8307..1f1803e26 100644 --- a/ShareX.UploadersLib/FileUploaders/SFTP.cs +++ b/ShareX.UploadersLib/FileUploaders/SFTP.cs @@ -61,8 +61,6 @@ public SFTP(FTPAccount account) Account = account; } - #region FileUploader methods - public override UploadResult Upload(Stream stream, string fileName) { UploadResult result = new UploadResult(); @@ -109,8 +107,6 @@ public override void StopUpload() } } - #endregion FileUploader methods - public bool Connect() { if (client == null) diff --git a/ShareX.UploadersLib/Forms/UploadersConfigFormHelper.cs b/ShareX.UploadersLib/Forms/UploadersConfigFormHelper.cs index 38f8d20e4..101b573d8 100644 --- a/ShareX.UploadersLib/Forms/UploadersConfigFormHelper.cs +++ b/ShareX.UploadersLib/Forms/UploadersConfigFormHelper.cs @@ -504,16 +504,16 @@ public void DropboxAuthComplete(string code) private void UpdateDropboxStatus() { - if (OAuth2Info.CheckOAuth(Config.DropboxOAuth2Info) && Config.DropboxAccount != null) + if (OAuth2Info.CheckOAuth(Config.DropboxOAuth2Info) && Config.DropboxAccountInfo != null) { StringBuilder sb = new StringBuilder(); - sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_Email_ + " " + Config.DropboxAccount.email); - sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_Name_ + " " + Config.DropboxAccount.name.display_name); - sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_User_ID_ + " " + Config.DropboxAccount.account_id); - string uploadPath = GetDropboxUploadPath(); + sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_Email_ + " " + Config.DropboxAccountInfo.Email); + sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_Name_ + " " + Config.DropboxAccountInfo.Display_name); + sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_User_ID_ + " " + Config.DropboxAccountInfo.Uid); + string uploadPath = NameParser.Parse(NameParserType.URL, Dropbox.VerifyPath(Config.DropboxUploadPath)); sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_Upload_path_ + " " + uploadPath); - // TODO: uid - sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_Download_path_ + " " + Dropbox.GetPublicURL(Config.DropboxAccount.account_id, uploadPath + "Example.png")); + sb.AppendLine(Resources.UploadersConfigForm_UpdateDropboxStatus_Download_path_ + " " + + Dropbox.GetPublicURL(Config.DropboxAccountInfo.Uid.ToString(), URLHelpers.CombineURL(uploadPath, "Example.png"))); lblDropboxStatus.Text = sb.ToString(); } else @@ -522,11 +522,6 @@ private void UpdateDropboxStatus() } } - private string GetDropboxUploadPath() - { - return NameParser.Parse(NameParserType.URL, Dropbox.VerifyPath(Config.DropboxUploadPath)); - } - #endregion Dropbox #region Amazon S3