diff --git a/ShareX.UploadersLib/FileUploaders/Seafile.cs b/ShareX.UploadersLib/FileUploaders/Seafile.cs
index dde5fccef..dfc2cafc8 100644
--- a/ShareX.UploadersLib/FileUploaders/Seafile.cs
+++ b/ShareX.UploadersLib/FileUploaders/Seafile.cs
@@ -58,6 +58,7 @@ public override GenericUploader CreateUploader(UploadersConfig config, TaskRefer
ShareDaysToExpire = config.SeafileShareDaysToExpire,
SharePassword = config.SeafileSharePassword,
CreateShareableURL = config.SeafileCreateShareableURL,
+ CreateShareableURLDirect = config.SeafileCreateShareableURLDirect,
IgnoreInvalidCert = config.SeafileIgnoreInvalidCert
};
}
@@ -76,6 +77,7 @@ public sealed class Seafile : FileUploader
public int ShareDaysToExpire { get; set; }
public string SharePassword { get; set; }
public bool CreateShareableURL { get; set; }
+ public bool CreateShareableURLDirect { get; set; }
public bool IgnoreInvalidCert { get; set; }
public Seafile(string apiurl, string authtoken, string repoid)
@@ -450,6 +452,15 @@ public override UploadResult Upload(Stream stream, string fileName)
{
AllowReportProgress = false;
result.URL = ShareFile(Path + fileName);
+
+ if (CreateShareableURLDirect)
+ {
+ var uriBuilder = new UriBuilder(result.URL);
+ var query = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);
+ query["raw"] = "1";
+ uriBuilder.Query = query.ToString();
+ result.URL = $"{uriBuilder.Scheme}://{uriBuilder.Host}{uriBuilder.Path}{uriBuilder.Query}";
+ }
}
else
{
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs b/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs
index 984f8b310..6fc20375a 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.Designer.cs
@@ -425,6 +425,7 @@ private void InitializeComponent()
this.lblSeafilePassword = new System.Windows.Forms.Label();
this.cbSeafileIgnoreInvalidCert = new System.Windows.Forms.CheckBox();
this.cbSeafileCreateShareableURL = new System.Windows.Forms.CheckBox();
+ this.cbSeafileCreateShareableURLDirect = new System.Windows.Forms.CheckBox();
this.txtSeafileAuthToken = new System.Windows.Forms.TextBox();
this.lblSeafileAuthToken = new System.Windows.Forms.Label();
this.lblSeafileAPIURL = new System.Windows.Forms.Label();
@@ -3177,6 +3178,7 @@ private void InitializeComponent()
this.tpSeafile.Controls.Add(this.grpSeafileObtainAuthToken);
this.tpSeafile.Controls.Add(this.cbSeafileIgnoreInvalidCert);
this.tpSeafile.Controls.Add(this.cbSeafileCreateShareableURL);
+ this.tpSeafile.Controls.Add(this.cbSeafileCreateShareableURLDirect);
this.tpSeafile.Controls.Add(this.txtSeafileAuthToken);
this.tpSeafile.Controls.Add(this.lblSeafileAuthToken);
this.tpSeafile.Controls.Add(this.lblSeafileAPIURL);
@@ -3427,6 +3429,13 @@ private void InitializeComponent()
this.cbSeafileCreateShareableURL.UseVisualStyleBackColor = true;
this.cbSeafileCreateShareableURL.CheckedChanged += new System.EventHandler(this.cbSeafileCreateShareableURL_CheckedChanged);
//
+ // cbSeafileCreateShareableURLDirect
+ //
+ resources.ApplyResources(this.cbSeafileCreateShareableURLDirect, "cbSeafileCreateShareableURLDirect");
+ this.cbSeafileCreateShareableURLDirect.Name = "cbSeafileCreateShareableURLDirect";
+ this.cbSeafileCreateShareableURLDirect.UseVisualStyleBackColor = true;
+ this.cbSeafileCreateShareableURLDirect.CheckedChanged += new System.EventHandler(this.cbSeafileCreateShareableURLDirect_CheckedChanged);
+ //
// txtSeafileAuthToken
//
resources.ApplyResources(this.txtSeafileAuthToken, "txtSeafileAuthToken");
@@ -5309,6 +5318,7 @@ private void InitializeComponent()
private System.Windows.Forms.Label lblSeafilePassword;
private System.Windows.Forms.CheckBox cbSeafileIgnoreInvalidCert;
private System.Windows.Forms.CheckBox cbSeafileCreateShareableURL;
+ private System.Windows.Forms.CheckBox cbSeafileCreateShareableURLDirect;
private System.Windows.Forms.TextBox txtSeafileAuthToken;
private System.Windows.Forms.Label lblSeafileAuthToken;
private System.Windows.Forms.Label lblSeafileAPIURL;
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.cs b/ShareX.UploadersLib/Forms/UploadersConfigForm.cs
index 642d903fe..24c88b0d5 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.cs
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.cs
@@ -639,6 +639,8 @@ private void LoadFileUploaderSettings()
txtSeafileLibraryPassword.ReadOnly = Config.SeafileIsLibraryEncrypted;
btnSeafileLibraryPasswordValidate.Enabled = !Config.SeafileIsLibraryEncrypted;
cbSeafileCreateShareableURL.Checked = Config.SeafileCreateShareableURL;
+ cbSeafileCreateShareableURLDirect.Checked = Config.SeafileCreateShareableURLDirect;
+ cbSeafileCreateShareableURLDirect.Enabled = cbSeafileCreateShareableURL.Checked;
cbSeafileIgnoreInvalidCert.Checked = Config.SeafileIgnoreInvalidCert;
nudSeafileExpireDays.SetValue(Config.SeafileShareDaysToExpire);
txtSeafileSharePassword.Text = Config.SeafileSharePassword;
@@ -2596,6 +2598,12 @@ private void btnSeafileGetAuthToken_Click(object sender, EventArgs e)
private void cbSeafileCreateShareableURL_CheckedChanged(object sender, EventArgs e)
{
Config.SeafileCreateShareableURL = cbSeafileCreateShareableURL.Checked;
+ cbSeafileCreateShareableURLDirect.Enabled = cbSeafileCreateShareableURL.Checked;
+ }
+
+ private void cbSeafileCreateShareableURLDirect_CheckedChanged(object sender, EventArgs e)
+ {
+ Config.SeafileCreateShareableURLDirect = cbSeafileCreateShareableURLDirect.Checked;
}
private void cbSeafileIgnoreInvalidCert_CheckedChanged(object sender, EventArgs e)
diff --git a/ShareX.UploadersLib/Forms/UploadersConfigForm.resx b/ShareX.UploadersLib/Forms/UploadersConfigForm.resx
index 1e8f43240..1ce902a27 100644
--- a/ShareX.UploadersLib/Forms/UploadersConfigForm.resx
+++ b/ShareX.UploadersLib/Forms/UploadersConfigForm.resx
@@ -13085,6 +13085,18 @@ when you made the application key.
17
+
+ cbSeafileCreateShareableURLDirect
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpSeafile
+
+
+ 17
+
txtSeafileAuthToken
@@ -14169,6 +14181,36 @@ Using an encrypted library disables sharing.
17
+
+ True
+
+
+ NoControl
+
+
+ 160, 103
+
+
+ 131, 17
+
+
+ 8
+
+
+ Direct URL
+
+
+ cbSeafileCreateShareableURLDirect
+
+
+ System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpSeafile
+
+
+ 17
+
16, 77
diff --git a/ShareX.UploadersLib/UploadersConfig.cs b/ShareX.UploadersLib/UploadersConfig.cs
index ba73fe8b0..ce97e386d 100644
--- a/ShareX.UploadersLib/UploadersConfig.cs
+++ b/ShareX.UploadersLib/UploadersConfig.cs
@@ -359,6 +359,7 @@ public class UploadersConfig : SettingsBase
public bool SeafileIsLibraryEncrypted = false;
public string SeafileEncryptedLibraryPassword = "";
public bool SeafileCreateShareableURL = true;
+ public bool SeafileCreateShareableURLDirect = false;
public bool SeafileIgnoreInvalidCert = false;
public int SeafileShareDaysToExpire = 0;
public string SeafileSharePassword = "";