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,
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
{

View file

@ -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;

View file

@ -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)

View file

@ -13085,6 +13085,18 @@ when you made the application key.</value>
<data name="&gt;&gt;cbSeafileCreateShareableURL.ZOrder" xml:space="preserve">
<value>17</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="&gt;&gt;txtSeafileAuthToken.Name" xml:space="preserve">
<value>txtSeafileAuthToken</value>
</data>
@ -14169,6 +14181,36 @@ Using an encrypted library disables sharing.</value>
<data name="&gt;&gt;cbSeafileCreateShareableURL.ZOrder" xml:space="preserve">
<value>17</value>
</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">
<value>16, 77</value>
</data>

View file

@ -359,6 +359,7 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
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 = "";