Added check box to make direct URL for SeaFile

This commit is contained in:
user6323 2020-05-02 19:35:42 +04:00
parent 22943c2429
commit f2254f9098
5 changed files with 72 additions and 0 deletions

View file

@ -58,6 +58,7 @@ public override GenericUploader CreateUploader(UploadersConfig config, TaskRefer
ShareDaysToExpire = config.SeafileShareDaysToExpire, ShareDaysToExpire = config.SeafileShareDaysToExpire,
SharePassword = config.SeafileSharePassword, SharePassword = config.SeafileSharePassword,
CreateShareableURL = config.SeafileCreateShareableURL, CreateShareableURL = config.SeafileCreateShareableURL,
CreateShareableURLDirect = config.SeafileCreateShareableURLDirect,
IgnoreInvalidCert = config.SeafileIgnoreInvalidCert IgnoreInvalidCert = config.SeafileIgnoreInvalidCert
}; };
} }
@ -76,6 +77,7 @@ public sealed class Seafile : FileUploader
public int ShareDaysToExpire { get; set; } public int ShareDaysToExpire { get; set; }
public string SharePassword { get; set; } public string SharePassword { get; set; }
public bool CreateShareableURL { get; set; } public bool CreateShareableURL { get; set; }
public bool CreateShareableURLDirect { get; set; }
public bool IgnoreInvalidCert { get; set; } public bool IgnoreInvalidCert { get; set; }
public Seafile(string apiurl, string authtoken, string repoid) public Seafile(string apiurl, string authtoken, string repoid)
@ -450,6 +452,15 @@ public override UploadResult Upload(Stream stream, string fileName)
{ {
AllowReportProgress = false; AllowReportProgress = false;
result.URL = ShareFile(Path + fileName); 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 else
{ {

View file

@ -425,6 +425,7 @@ private void InitializeComponent()
this.lblSeafilePassword = new System.Windows.Forms.Label(); this.lblSeafilePassword = new System.Windows.Forms.Label();
this.cbSeafileIgnoreInvalidCert = new System.Windows.Forms.CheckBox(); this.cbSeafileIgnoreInvalidCert = new System.Windows.Forms.CheckBox();
this.cbSeafileCreateShareableURL = 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.txtSeafileAuthToken = new System.Windows.Forms.TextBox();
this.lblSeafileAuthToken = new System.Windows.Forms.Label(); this.lblSeafileAuthToken = new System.Windows.Forms.Label();
this.lblSeafileAPIURL = 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.grpSeafileObtainAuthToken);
this.tpSeafile.Controls.Add(this.cbSeafileIgnoreInvalidCert); this.tpSeafile.Controls.Add(this.cbSeafileIgnoreInvalidCert);
this.tpSeafile.Controls.Add(this.cbSeafileCreateShareableURL); this.tpSeafile.Controls.Add(this.cbSeafileCreateShareableURL);
this.tpSeafile.Controls.Add(this.cbSeafileCreateShareableURLDirect);
this.tpSeafile.Controls.Add(this.txtSeafileAuthToken); this.tpSeafile.Controls.Add(this.txtSeafileAuthToken);
this.tpSeafile.Controls.Add(this.lblSeafileAuthToken); this.tpSeafile.Controls.Add(this.lblSeafileAuthToken);
this.tpSeafile.Controls.Add(this.lblSeafileAPIURL); this.tpSeafile.Controls.Add(this.lblSeafileAPIURL);
@ -3427,6 +3429,13 @@ private void InitializeComponent()
this.cbSeafileCreateShareableURL.UseVisualStyleBackColor = true; this.cbSeafileCreateShareableURL.UseVisualStyleBackColor = true;
this.cbSeafileCreateShareableURL.CheckedChanged += new System.EventHandler(this.cbSeafileCreateShareableURL_CheckedChanged); 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 // txtSeafileAuthToken
// //
resources.ApplyResources(this.txtSeafileAuthToken, "txtSeafileAuthToken"); resources.ApplyResources(this.txtSeafileAuthToken, "txtSeafileAuthToken");
@ -5309,6 +5318,7 @@ private void InitializeComponent()
private System.Windows.Forms.Label lblSeafilePassword; private System.Windows.Forms.Label lblSeafilePassword;
private System.Windows.Forms.CheckBox cbSeafileIgnoreInvalidCert; private System.Windows.Forms.CheckBox cbSeafileIgnoreInvalidCert;
private System.Windows.Forms.CheckBox cbSeafileCreateShareableURL; private System.Windows.Forms.CheckBox cbSeafileCreateShareableURL;
private System.Windows.Forms.CheckBox cbSeafileCreateShareableURLDirect;
private System.Windows.Forms.TextBox txtSeafileAuthToken; private System.Windows.Forms.TextBox txtSeafileAuthToken;
private System.Windows.Forms.Label lblSeafileAuthToken; private System.Windows.Forms.Label lblSeafileAuthToken;
private System.Windows.Forms.Label lblSeafileAPIURL; private System.Windows.Forms.Label lblSeafileAPIURL;

View file

@ -639,6 +639,8 @@ private void LoadFileUploaderSettings()
txtSeafileLibraryPassword.ReadOnly = Config.SeafileIsLibraryEncrypted; txtSeafileLibraryPassword.ReadOnly = Config.SeafileIsLibraryEncrypted;
btnSeafileLibraryPasswordValidate.Enabled = !Config.SeafileIsLibraryEncrypted; btnSeafileLibraryPasswordValidate.Enabled = !Config.SeafileIsLibraryEncrypted;
cbSeafileCreateShareableURL.Checked = Config.SeafileCreateShareableURL; cbSeafileCreateShareableURL.Checked = Config.SeafileCreateShareableURL;
cbSeafileCreateShareableURLDirect.Checked = Config.SeafileCreateShareableURLDirect;
cbSeafileCreateShareableURLDirect.Enabled = cbSeafileCreateShareableURL.Checked;
cbSeafileIgnoreInvalidCert.Checked = Config.SeafileIgnoreInvalidCert; cbSeafileIgnoreInvalidCert.Checked = Config.SeafileIgnoreInvalidCert;
nudSeafileExpireDays.SetValue(Config.SeafileShareDaysToExpire); nudSeafileExpireDays.SetValue(Config.SeafileShareDaysToExpire);
txtSeafileSharePassword.Text = Config.SeafileSharePassword; txtSeafileSharePassword.Text = Config.SeafileSharePassword;
@ -2596,6 +2598,12 @@ private void btnSeafileGetAuthToken_Click(object sender, EventArgs e)
private void cbSeafileCreateShareableURL_CheckedChanged(object sender, EventArgs e) private void cbSeafileCreateShareableURL_CheckedChanged(object sender, EventArgs e)
{ {
Config.SeafileCreateShareableURL = cbSeafileCreateShareableURL.Checked; 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) private void cbSeafileIgnoreInvalidCert_CheckedChanged(object sender, EventArgs e)

View file

@ -13085,6 +13085,18 @@ when you made the application key.</value>
<data name="&gt;&gt;cbSeafileCreateShareableURL.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbSeafileCreateShareableURL.ZOrder" xml:space="preserve">
<value>17</value> <value>17</value>
</data> </data>
<data name="&gt;&gt;cbSeafileCreateShareableURLDirect.Name" xml:space="preserve">
<value>cbSeafileCreateShareableURLDirect</value>
</data>
<data name="&gt;&gt;cbSeafileCreateShareableURLDirect.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbSeafileCreateShareableURLDirect.Parent" xml:space="preserve">
<value>tpSeafile</value>
</data>
<data name="&gt;&gt;cbSeafileCreateShareableURLDirect.ZOrder" xml:space="preserve">
<value>17</value>
</data>
<data name="&gt;&gt;txtSeafileAuthToken.Name" xml:space="preserve"> <data name="&gt;&gt;txtSeafileAuthToken.Name" xml:space="preserve">
<value>txtSeafileAuthToken</value> <value>txtSeafileAuthToken</value>
</data> </data>
@ -14169,6 +14181,36 @@ Using an encrypted library disables sharing.</value>
<data name="&gt;&gt;cbSeafileCreateShareableURL.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbSeafileCreateShareableURL.ZOrder" xml:space="preserve">
<value>17</value> <value>17</value>
</data> </data>
<data name="cbSeafileCreateShareableURLDirect.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbSeafileCreateShareableURLDirect.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cbSeafileCreateShareableURLDirect.Location" type="System.Drawing.Point, System.Drawing">
<value>160, 103</value>
</data>
<data name="cbSeafileCreateShareableURLDirect.Size" type="System.Drawing.Size, System.Drawing">
<value>131, 17</value>
</data>
<data name="cbSeafileCreateShareableURLDirect.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="cbSeafileCreateShareableURLDirect.Text" xml:space="preserve">
<value>Direct URL</value>
</data>
<data name="&gt;&gt;cbSeafileCreateShareableURLDirect.Name" xml:space="preserve">
<value>cbSeafileCreateShareableURLDirect</value>
</data>
<data name="&gt;&gt;cbSeafileCreateShareableURLDirect.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbSeafileCreateShareableURLDirect.Parent" xml:space="preserve">
<value>tpSeafile</value>
</data>
<data name="&gt;&gt;cbSeafileCreateShareableURLDirect.ZOrder" xml:space="preserve">
<value>17</value>
</data>
<data name="txtSeafileAuthToken.Location" type="System.Drawing.Point, System.Drawing"> <data name="txtSeafileAuthToken.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 77</value> <value>16, 77</value>
</data> </data>

View file

@ -359,6 +359,7 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
public bool SeafileIsLibraryEncrypted = false; public bool SeafileIsLibraryEncrypted = false;
public string SeafileEncryptedLibraryPassword = ""; public string SeafileEncryptedLibraryPassword = "";
public bool SeafileCreateShareableURL = true; public bool SeafileCreateShareableURL = true;
public bool SeafileCreateShareableURLDirect = false;
public bool SeafileIgnoreInvalidCert = false; public bool SeafileIgnoreInvalidCert = false;
public int SeafileShareDaysToExpire = 0; public int SeafileShareDaysToExpire = 0;
public string SeafileSharePassword = ""; public string SeafileSharePassword = "";