Ignore default values while exporting custom uploader, if custom uploader name is empty then use request url domain as name

This commit is contained in:
Jaex 2017-09-06 02:18:36 +03:00
parent 33a15d760c
commit c0501d3369
6 changed files with 560 additions and 512 deletions

View file

@ -49,6 +49,9 @@ public partial class ExportImportControl : UserControl
// Can't use generic class because not works in form designer // Can't use generic class because not works in form designer
public Type ObjectType { get; set; } public Type ObjectType { get; set; }
[DefaultValue(false)]
public bool ExportIgnoreDefaultValue { get; set; }
[DefaultValue(false)] [DefaultValue(false)]
public bool ExportIgnoreNull { get; set; } public bool ExportIgnoreNull { get; set; }
@ -76,6 +79,7 @@ public string Serialize(object obj)
JsonSerializer serializer = new JsonSerializer(); JsonSerializer serializer = new JsonSerializer();
serializer.ContractResolver = new WritablePropertiesOnlyResolver(); serializer.ContractResolver = new WritablePropertiesOnlyResolver();
serializer.Converters.Add(new StringEnumConverter()); serializer.Converters.Add(new StringEnumConverter());
serializer.DefaultValueHandling = ExportIgnoreDefaultValue ? DefaultValueHandling.Ignore : DefaultValueHandling.Include;
serializer.NullValueHandling = ExportIgnoreNull ? NullValueHandling.Ignore : NullValueHandling.Include; serializer.NullValueHandling = ExportIgnoreNull ? NullValueHandling.Ignore : NullValueHandling.Include;
serializer.TypeNameHandling = TypeNameHandling.Auto; serializer.TypeNameHandling = TypeNameHandling.Auto;
serializer.Serialize(textWriter, obj, ObjectType); serializer.Serialize(textWriter, obj, ObjectType);

File diff suppressed because it is too large Load diff

View file

@ -3331,6 +3331,8 @@ private void btnCustomUploaderArgAdd_Click(object sender, EventArgs e)
CustomUploaderItem uploader = CustomUploaderGetSelected(); CustomUploaderItem uploader = CustomUploaderGetSelected();
if (uploader != null) if (uploader != null)
{ {
if (uploader.Arguments == null) uploader.Arguments = new Dictionary<string, string>();
if (uploader.Arguments.ContainsKey(name)) if (uploader.Arguments.ContainsKey(name))
{ {
// TODO: Translate // TODO: Translate
@ -3340,8 +3342,6 @@ private void btnCustomUploaderArgAdd_Click(object sender, EventArgs e)
{ {
string value = txtCustomUploaderArgValue.Text; string value = txtCustomUploaderArgValue.Text;
lvCustomUploaderArguments.Items.Add(name).SubItems.Add(value); lvCustomUploaderArguments.Items.Add(name).SubItems.Add(value);
if (uploader.Arguments == null) uploader.Arguments = new Dictionary<string, string>();
uploader.Arguments.Add(name, value); uploader.Arguments.Add(name, value);
lvCustomUploaderArguments.SelectedItems.Clear(); lvCustomUploaderArguments.SelectedItems.Clear();
@ -3418,6 +3418,8 @@ private void btnCustomUploaderHeaderAdd_Click(object sender, EventArgs e)
CustomUploaderItem uploader = CustomUploaderGetSelected(); CustomUploaderItem uploader = CustomUploaderGetSelected();
if (uploader != null) if (uploader != null)
{ {
if (uploader.Headers == null) uploader.Headers = new Dictionary<string, string>();
if (uploader.Headers.ContainsKey(name)) if (uploader.Headers.ContainsKey(name))
{ {
// TODO: Translate // TODO: Translate
@ -3427,8 +3429,6 @@ private void btnCustomUploaderHeaderAdd_Click(object sender, EventArgs e)
{ {
string value = txtCustomUploaderHeaderValue.Text; string value = txtCustomUploaderHeaderValue.Text;
lvCustomUploaderHeaders.Items.Add(name).SubItems.Add(value); lvCustomUploaderHeaders.Items.Add(name).SubItems.Add(value);
if (uploader.Headers == null) uploader.Headers = new Dictionary<string, string>();
uploader.Headers.Add(name, value); uploader.Headers.Add(name, value);
lvCustomUploaderHeaders.SelectedItems.Clear(); lvCustomUploaderHeaders.SelectedItems.Clear();

View file

@ -208,12 +208,6 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<data name="&gt;&gt;cbAmazonS3CustomCNAME.ZOrder" xml:space="preserve"> <data name="&gt;&gt;cbAmazonS3CustomCNAME.ZOrder" xml:space="preserve">
<value>10</value> <value>10</value>
</data> </data>
<data name="mbCustomUploaderDestinationType.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="mbCustomUploaderDestinationType.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 40</value>
</data>
<metadata name="cmsCustomUploaderDestinationType.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="cmsCustomUploaderDestinationType.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>119, 17</value> <value>119, 17</value>
</metadata> </metadata>
@ -226,30 +220,6 @@ For example, if your bucket is called bucket.example.com then URL will be http:/
<data name="&gt;&gt;cmsCustomUploaderDestinationType.Type" xml:space="preserve"> <data name="&gt;&gt;cmsCustomUploaderDestinationType.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="mbCustomUploaderDestinationType.Size" type="System.Drawing.Size, System.Drawing">
<value>232, 23</value>
</data>
<data name="mbCustomUploaderDestinationType.TabIndex" type="System.Int32, mscorlib">
<value>37</value>
</data>
<data name="mbCustomUploaderDestinationType.Text" xml:space="preserve">
<value>Destination type</value>
</data>
<data name="mbCustomUploaderDestinationType.ToolTip" xml:space="preserve">
<value>Currently destination type is used when users import custom uploader by double clicking the .sxcu file.</value>
</data>
<data name="&gt;&gt;mbCustomUploaderDestinationType.Name" xml:space="preserve">
<value>mbCustomUploaderDestinationType</value>
</data>
<data name="&gt;&gt;mbCustomUploaderDestinationType.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;mbCustomUploaderDestinationType.Parent" xml:space="preserve">
<value>gbCustomUploaders</value>
</data>
<data name="&gt;&gt;mbCustomUploaderDestinationType.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnTwitterNameUpdate.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <data name="btnTwitterNameUpdate.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value> <value>NoControl</value>
</data> </data>
@ -2161,6 +2131,36 @@ store.book[0].title</value>
<data name="&gt;&gt;btnCustomUploaderDuplicate.ZOrder" xml:space="preserve"> <data name="&gt;&gt;btnCustomUploaderDuplicate.ZOrder" xml:space="preserve">
<value>0</value> <value>0</value>
</data> </data>
<data name="mbCustomUploaderDestinationType.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="mbCustomUploaderDestinationType.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 40</value>
</data>
<data name="mbCustomUploaderDestinationType.Size" type="System.Drawing.Size, System.Drawing">
<value>232, 23</value>
</data>
<data name="mbCustomUploaderDestinationType.TabIndex" type="System.Int32, mscorlib">
<value>37</value>
</data>
<data name="mbCustomUploaderDestinationType.Text" xml:space="preserve">
<value>Destination type</value>
</data>
<data name="mbCustomUploaderDestinationType.ToolTip" xml:space="preserve">
<value>Currently destination type is used when users import custom uploader by double clicking the .sxcu file.</value>
</data>
<data name="&gt;&gt;mbCustomUploaderDestinationType.Name" xml:space="preserve">
<value>mbCustomUploaderDestinationType</value>
</data>
<data name="&gt;&gt;mbCustomUploaderDestinationType.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;mbCustomUploaderDestinationType.Parent" xml:space="preserve">
<value>gbCustomUploaders</value>
</data>
<data name="&gt;&gt;mbCustomUploaderDestinationType.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnCustomUploadersExportAll.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms"> <data name="btnCustomUploadersExportAll.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value> <value>NoControl</value>
</data> </data>
@ -4967,13 +4967,13 @@ store.book[0].title</value>
<value>11</value> <value>11</value>
</data> </data>
<data name="tpFTP.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpFTP.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpFTP.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpFTP.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpFTP.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpFTP.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpFTP.TabIndex" type="System.Int32, mscorlib"> <data name="tpFTP.TabIndex" type="System.Int32, mscorlib">
<value>4</value> <value>4</value>
@ -5266,13 +5266,13 @@ store.book[0].title</value>
<value>5</value> <value>5</value>
</data> </data>
<data name="tpDropbox.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpDropbox.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpDropbox.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpDropbox.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpDropbox.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpDropbox.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpDropbox.TabIndex" type="System.Int32, mscorlib"> <data name="tpDropbox.TabIndex" type="System.Int32, mscorlib">
<value>0</value> <value>0</value>
@ -5398,13 +5398,13 @@ store.book[0].title</value>
<value>3</value> <value>3</value>
</data> </data>
<data name="tpOneDrive.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpOneDrive.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpOneDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpOneDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpOneDrive.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpOneDrive.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpOneDrive.TabIndex" type="System.Int32, mscorlib"> <data name="tpOneDrive.TabIndex" type="System.Int32, mscorlib">
<value>17</value> <value>17</value>
@ -5650,13 +5650,13 @@ store.book[0].title</value>
<value>7</value> <value>7</value>
</data> </data>
<data name="tpGoogleDrive.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpGoogleDrive.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpGoogleDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpGoogleDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpGoogleDrive.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpGoogleDrive.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpGoogleDrive.TabIndex" type="System.Int32, mscorlib"> <data name="tpGoogleDrive.TabIndex" type="System.Int32, mscorlib">
<value>1</value> <value>1</value>
@ -5914,13 +5914,13 @@ store.book[0].title</value>
<value>8</value> <value>8</value>
</data> </data>
<data name="tpPuush.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpPuush.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpPuush.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpPuush.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpPuush.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpPuush.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpPuush.TabIndex" type="System.Int32, mscorlib"> <data name="tpPuush.TabIndex" type="System.Int32, mscorlib">
<value>26</value> <value>26</value>
@ -6109,13 +6109,13 @@ store.book[0].title</value>
<value>5</value> <value>5</value>
</data> </data>
<data name="tpBox.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpBox.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpBox.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpBox.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpBox.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpBox.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpBox.TabIndex" type="System.Int32, mscorlib"> <data name="tpBox.TabIndex" type="System.Int32, mscorlib">
<value>2</value> <value>2</value>
@ -6982,13 +6982,13 @@ store.book[0].title</value>
<value>10</value> <value>10</value>
</data> </data>
<data name="tpAzureStorage.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpAzureStorage.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpAzureStorage.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpAzureStorage.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpAzureStorage.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpAzureStorage.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpAzureStorage.TabIndex" type="System.Int32, mscorlib"> <data name="tpAzureStorage.TabIndex" type="System.Int32, mscorlib">
<value>28</value> <value>28</value>
@ -7081,13 +7081,13 @@ store.book[0].title</value>
<value>2</value> <value>2</value>
</data> </data>
<data name="tpGfycat.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpGfycat.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpGfycat.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpGfycat.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpGfycat.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpGfycat.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpGfycat.TabIndex" type="System.Int32, mscorlib"> <data name="tpGfycat.TabIndex" type="System.Int32, mscorlib">
<value>30</value> <value>30</value>
@ -7402,10 +7402,10 @@ store.book[0].title</value>
<value>10</value> <value>10</value>
</data> </data>
<data name="tpMega.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpMega.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpMega.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpMega.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpMega.TabIndex" type="System.Int32, mscorlib"> <data name="tpMega.TabIndex" type="System.Int32, mscorlib">
<value>12</value> <value>12</value>
@ -7750,13 +7750,13 @@ store.book[0].title</value>
<value>11</value> <value>11</value>
</data> </data>
<data name="tpOwnCloud.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpOwnCloud.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpOwnCloud.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpOwnCloud.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpOwnCloud.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpOwnCloud.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpOwnCloud.TabIndex" type="System.Int32, mscorlib"> <data name="tpOwnCloud.TabIndex" type="System.Int32, mscorlib">
<value>15</value> <value>15</value>
@ -7960,13 +7960,13 @@ store.book[0].title</value>
<value>6</value> <value>6</value>
</data> </data>
<data name="tpMediaFire.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpMediaFire.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpMediaFire.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpMediaFire.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpMediaFire.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpMediaFire.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpMediaFire.TabIndex" type="System.Int32, mscorlib"> <data name="tpMediaFire.TabIndex" type="System.Int32, mscorlib">
<value>16</value> <value>16</value>
@ -8122,13 +8122,13 @@ store.book[0].title</value>
<value>4</value> <value>4</value>
</data> </data>
<data name="tpPushbullet.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpPushbullet.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpPushbullet.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpPushbullet.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpPushbullet.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpPushbullet.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpPushbullet.TabIndex" type="System.Int32, mscorlib"> <data name="tpPushbullet.TabIndex" type="System.Int32, mscorlib">
<value>14</value> <value>14</value>
@ -8299,13 +8299,13 @@ store.book[0].title</value>
<value>5</value> <value>5</value>
</data> </data>
<data name="tpSendSpace.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpSendSpace.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpSendSpace.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpSendSpace.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpSendSpace.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpSendSpace.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpSendSpace.TabIndex" type="System.Int32, mscorlib"> <data name="tpSendSpace.TabIndex" type="System.Int32, mscorlib">
<value>6</value> <value>6</value>
@ -8485,13 +8485,13 @@ store.book[0].title</value>
<value>5</value> <value>5</value>
</data> </data>
<data name="tpGe_tt.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpGe_tt.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpGe_tt.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpGe_tt.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpGe_tt.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpGe_tt.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpGe_tt.TabIndex" type="System.Int32, mscorlib"> <data name="tpGe_tt.TabIndex" type="System.Int32, mscorlib">
<value>7</value> <value>7</value>
@ -8644,13 +8644,13 @@ store.book[0].title</value>
<value>4</value> <value>4</value>
</data> </data>
<data name="tpHostr.Location" type="System.Drawing.Point, System.Drawing"> <data name="tpHostr.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value> <value>4, 22</value>
</data> </data>
<data name="tpHostr.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms"> <data name="tpHostr.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value> <value>3, 3, 3, 3</value>
</data> </data>
<data name="tpHostr.Size" type="System.Drawing.Size, System.Drawing"> <data name="tpHostr.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 475</value> <value>972, 493</value>
</data> </data>
<data name="tpHostr.TabIndex" type="System.Int32, mscorlib"> <data name="tpHostr.TabIndex" type="System.Int32, mscorlib">
<value>8</value> <value>8</value>
@ -16066,72 +16066,6 @@ Using an encrypted library disables sharing.</value>
<data name="&gt;&gt;ttHelpTip.Type" xml:space="preserve"> <data name="&gt;&gt;ttHelpTip.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;lvRegexpsColumn.Name" xml:space="preserve">
<value>lvRegexpsColumn</value>
</data>
<data name="&gt;&gt;lvRegexpsColumn.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chCustomUploaderArgumentsName.Name" xml:space="preserve">
<value>chCustomUploaderArgumentsName</value>
</data>
<data name="&gt;&gt;chCustomUploaderArgumentsName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chCustomUploaderArgumentsValue.Name" xml:space="preserve">
<value>chCustomUploaderArgumentsValue</value>
</data>
<data name="&gt;&gt;chCustomUploaderArgumentsValue.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chCustomUploaderHeadersName.Name" xml:space="preserve">
<value>chCustomUploaderHeadersName</value>
</data>
<data name="&gt;&gt;chCustomUploaderHeadersName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chCustomUploaderHeadersValue.Name" xml:space="preserve">
<value>chCustomUploaderHeadersValue</value>
</data>
<data name="&gt;&gt;chCustomUploaderHeadersValue.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chGoogleDriveTitle.Name" xml:space="preserve">
<value>chGoogleDriveTitle</value>
</data>
<data name="&gt;&gt;chGoogleDriveTitle.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chGoogleDriveDescription.Name" xml:space="preserve">
<value>chGoogleDriveDescription</value>
</data>
<data name="&gt;&gt;chGoogleDriveDescription.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chBoxFoldersName.Name" xml:space="preserve">
<value>chBoxFoldersName</value>
</data>
<data name="&gt;&gt;chBoxFoldersName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;colSeafileLibraryName.Name" xml:space="preserve">
<value>colSeafileLibraryName</value>
</data>
<data name="&gt;&gt;colSeafileLibraryName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;colSeafileLibrarySize.Name" xml:space="preserve">
<value>colSeafileLibrarySize</value>
</data>
<data name="&gt;&gt;colSeafileLibrarySize.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;colSeafileLibraryEncrypted.Name" xml:space="preserve">
<value>colSeafileLibraryEncrypted</value>
</data>
<data name="&gt;&gt;colSeafileLibraryEncrypted.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chImgurID.Name" xml:space="preserve"> <data name="&gt;&gt;chImgurID.Name" xml:space="preserve">
<value>chImgurID</value> <value>chImgurID</value>
</data> </data>
@ -16168,6 +16102,72 @@ Using an encrypted library disables sharing.</value>
<data name="&gt;&gt;chPicasaDescription.Type" xml:space="preserve"> <data name="&gt;&gt;chPicasaDescription.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="&gt;&gt;chGoogleDriveTitle.Name" xml:space="preserve">
<value>chGoogleDriveTitle</value>
</data>
<data name="&gt;&gt;chGoogleDriveTitle.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chGoogleDriveDescription.Name" xml:space="preserve">
<value>chGoogleDriveDescription</value>
</data>
<data name="&gt;&gt;chGoogleDriveDescription.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chBoxFoldersName.Name" xml:space="preserve">
<value>chBoxFoldersName</value>
</data>
<data name="&gt;&gt;chBoxFoldersName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lvRegexpsColumn.Name" xml:space="preserve">
<value>lvRegexpsColumn</value>
</data>
<data name="&gt;&gt;lvRegexpsColumn.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chCustomUploaderArgumentsName.Name" xml:space="preserve">
<value>chCustomUploaderArgumentsName</value>
</data>
<data name="&gt;&gt;chCustomUploaderArgumentsName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chCustomUploaderArgumentsValue.Name" xml:space="preserve">
<value>chCustomUploaderArgumentsValue</value>
</data>
<data name="&gt;&gt;chCustomUploaderArgumentsValue.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chCustomUploaderHeadersName.Name" xml:space="preserve">
<value>chCustomUploaderHeadersName</value>
</data>
<data name="&gt;&gt;chCustomUploaderHeadersName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chCustomUploaderHeadersValue.Name" xml:space="preserve">
<value>chCustomUploaderHeadersValue</value>
</data>
<data name="&gt;&gt;chCustomUploaderHeadersValue.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;colSeafileLibraryName.Name" xml:space="preserve">
<value>colSeafileLibraryName</value>
</data>
<data name="&gt;&gt;colSeafileLibraryName.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;colSeafileLibrarySize.Name" xml:space="preserve">
<value>colSeafileLibrarySize</value>
</data>
<data name="&gt;&gt;colSeafileLibrarySize.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;colSeafileLibraryEncrypted.Name" xml:space="preserve">
<value>colSeafileLibraryEncrypted</value>
</data>
<data name="&gt;&gt;colSeafileLibraryEncrypted.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve"> <data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>UploadersConfigForm</value> <value>UploadersConfigForm</value>
</data> </data>

View file

@ -1774,7 +1774,7 @@ private void CustomUploaderLoadTab(bool selectLastItem = false)
{ {
foreach (CustomUploaderItem customUploader in Config.CustomUploadersList) foreach (CustomUploaderItem customUploader in Config.CustomUploadersList)
{ {
lbCustomUploaderList.Items.Add(customUploader.Name); lbCustomUploaderList.Items.Add(customUploader);
} }
CustomUploaderUpdateList(); CustomUploaderUpdateList();

View file

@ -27,6 +27,7 @@ You should have received a copy of the GNU General Public License
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.Specialized; using System.Collections.Specialized;
using System.ComponentModel;
using System.IO; using System.IO;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
@ -36,17 +37,40 @@ namespace ShareX.UploadersLib
{ {
public class CustomUploaderItem public class CustomUploaderItem
{ {
[DefaultValue("")]
public string Name { get; set; } public string Name { get; set; }
[DefaultValue(CustomUploaderDestinationType.None)]
public CustomUploaderDestinationType DestinationType { get; set; } public CustomUploaderDestinationType DestinationType { get; set; }
[DefaultValue(CustomUploaderRequestType.POST)]
public CustomUploaderRequestType RequestType { get; set; } public CustomUploaderRequestType RequestType { get; set; }
[DefaultValue("")]
public string RequestURL { get; set; } public string RequestURL { get; set; }
[DefaultValue("")]
public string FileFormName { get; set; } public string FileFormName { get; set; }
[DefaultValue(null)]
public Dictionary<string, string> Arguments { get; set; } public Dictionary<string, string> Arguments { get; set; }
[DefaultValue(null)]
public Dictionary<string, string> Headers { get; set; } public Dictionary<string, string> Headers { get; set; }
[DefaultValue(ResponseType.Text)]
public ResponseType ResponseType { get; set; } public ResponseType ResponseType { get; set; }
[DefaultValue(null)]
public List<string> RegexList { get; set; } public List<string> RegexList { get; set; }
[DefaultValue("")]
public string URL { get; set; } public string URL { get; set; }
[DefaultValue("")]
public string ThumbnailURL { get; set; } public string ThumbnailURL { get; set; }
[DefaultValue("")]
public string DeletionURL { get; set; } public string DeletionURL { get; set; }
private string response; private string response;
@ -54,7 +78,6 @@ public class CustomUploaderItem
public CustomUploaderItem() public CustomUploaderItem()
{ {
Name = "example.com";
} }
public CustomUploaderItem(string name) public CustomUploaderItem(string name)
@ -64,6 +87,26 @@ public CustomUploaderItem(string name)
public override string ToString() public override string ToString()
{ {
if (string.IsNullOrEmpty(Name))
{
if (!string.IsNullOrEmpty(RequestURL) && Uri.TryCreate(RequestURL, UriKind.Absolute, out Uri uri))
{
string host = uri.Host;
if (!string.IsNullOrEmpty(host))
{
if (host.StartsWith("www."))
{
host = host.Substring(4);
}
return host;
}
}
return "Name";
}
return Name; return Name;
} }