diff --git a/ShareX.UploadersLib/ShareX.UploadersLib.csproj b/ShareX.UploadersLib/ShareX.UploadersLib.csproj
index ce7bb4f55..97642f67c 100644
--- a/ShareX.UploadersLib/ShareX.UploadersLib.csproj
+++ b/ShareX.UploadersLib/ShareX.UploadersLib.csproj
@@ -209,6 +209,7 @@
+
@@ -282,6 +283,7 @@
+
diff --git a/ShareX.UploadersLib/SharingServices/DeliciousSharingService.cs b/ShareX.UploadersLib/SharingServices/DeliciousSharingService.cs
new file mode 100644
index 000000000..d10639d23
--- /dev/null
+++ b/ShareX.UploadersLib/SharingServices/DeliciousSharingService.cs
@@ -0,0 +1,8 @@
+namespace ShareX.UploadersLib.SharingServices
+{
+ public class DeliciousSharingService : SimpleSharingService
+ {
+ public override URLSharingServices EnumValue { get; } = URLSharingServices.Delicious;
+ protected override string UrlFormatString { get; } = "https://delicious.com/save?v=5&url={0}";
+ }
+}
\ No newline at end of file
diff --git a/ShareX.UploadersLib/UploadersConfig.cs b/ShareX.UploadersLib/UploadersConfig.cs
index 0709753a7..975a67ea1 100644
--- a/ShareX.UploadersLib/UploadersConfig.cs
+++ b/ShareX.UploadersLib/UploadersConfig.cs
@@ -350,68 +350,5 @@ public class UploadersConfig : SettingsBase
public int CustomURLShortenerSelected = 0;
#endregion Custom Uploaders
-
- #region Helper Methods
-
- public bool IsValid(int index)
- {
- Enum destination = (Enum)Enum.ToObject(typeof(T), index);
-
- if (destination is ImageDestination)
- {
- return IsValid((ImageDestination)destination);
- }
-
- if (destination is TextDestination)
- {
- return IsValid((TextDestination)destination);
- }
-
- if (destination is FileDestination)
- {
- return IsValid((FileDestination)destination);
- }
-
- if (destination is UrlShortenerType)
- {
- return IsValid((UrlShortenerType)destination);
- }
-
- if (destination is URLSharingServices)
- {
- return IsValid((URLSharingServices)destination);
- }
-
- return true;
- }
-
- public bool IsValid(ImageDestination destination)
- {
- if (destination == ImageDestination.FileUploader) return true;
- return UploaderFactory.GetImageUploaderServiceByEnum(destination).CheckConfig(this);
- }
-
- public bool IsValid(TextDestination destination)
- {
- if (destination == TextDestination.FileUploader) return true;
- return UploaderFactory.GetTextUploaderServiceByEnum(destination).CheckConfig(this);
- }
-
- public bool IsValid(FileDestination destination)
- {
- return UploaderFactory.GetFileUploaderServiceByEnum(destination).CheckConfig(this);
- }
-
- public bool IsValid(UrlShortenerType destination)
- {
- return UploaderFactory.GetURLShortenerServiceByEnum(destination).CheckConfig(this);
- }
-
- public bool IsValid(URLSharingServices destination)
- {
- return UploaderFactory.GetSharingServiceByEnum(destination).CheckConfig(this);
- }
-
- #endregion Helper Methods
}
}
\ No newline at end of file
diff --git a/ShareX.UploadersLib/UploadersConfigValidator.cs b/ShareX.UploadersLib/UploadersConfigValidator.cs
new file mode 100644
index 000000000..d61c2a329
--- /dev/null
+++ b/ShareX.UploadersLib/UploadersConfigValidator.cs
@@ -0,0 +1,66 @@
+using System;
+
+namespace ShareX.UploadersLib
+{
+ public static class UploadersConfigValidator
+ {
+ public static bool Validate(int index, UploadersConfig config)
+ {
+ Enum destination = (Enum)Enum.ToObject(typeof(T), index);
+
+ if (destination is ImageDestination)
+ {
+ return Validate((ImageDestination)destination, config);
+ }
+
+ if (destination is TextDestination)
+ {
+ return Validate((TextDestination)destination, config);
+ }
+
+ if (destination is FileDestination)
+ {
+ return Validate((FileDestination)destination, config);
+ }
+
+ if (destination is UrlShortenerType)
+ {
+ return Validate((UrlShortenerType)destination, config);
+ }
+
+ if (destination is URLSharingServices)
+ {
+ return Validate((URLSharingServices)destination, config);
+ }
+
+ return true;
+ }
+
+ public static bool Validate(ImageDestination destination, UploadersConfig config)
+ {
+ if (destination == ImageDestination.FileUploader) return true;
+ return UploaderFactory.GetImageUploaderServiceByEnum(destination).CheckConfig(config);
+ }
+
+ public static bool Validate(TextDestination destination, UploadersConfig config)
+ {
+ if (destination == TextDestination.FileUploader) return true;
+ return UploaderFactory.GetTextUploaderServiceByEnum(destination).CheckConfig(config);
+ }
+
+ public static bool Validate(FileDestination destination, UploadersConfig config)
+ {
+ return UploaderFactory.GetFileUploaderServiceByEnum(destination).CheckConfig(config);
+ }
+
+ public static bool Validate(UrlShortenerType destination, UploadersConfig config)
+ {
+ return UploaderFactory.GetURLShortenerServiceByEnum(destination).CheckConfig(config);
+ }
+
+ public static bool Validate(URLSharingServices destination, UploadersConfig config)
+ {
+ return UploaderFactory.GetSharingServiceByEnum(destination).CheckConfig(config);
+ }
+ }
+}
\ No newline at end of file
diff --git a/ShareX/Controls/BeforeUploadControl.cs b/ShareX/Controls/BeforeUploadControl.cs
index 3242bf1d6..4d083f1bd 100644
--- a/ShareX/Controls/BeforeUploadControl.cs
+++ b/ShareX/Controls/BeforeUploadControl.cs
@@ -191,7 +191,7 @@ private void AddDestination(int index, EDataType dataType, TaskSettings taskS
{
Enum destination = (Enum)Enum.ToObject(typeof(T), index);
- if (Program.UploadersConfig.IsValid(index))
+ if (UploadersConfigValidator.Validate(index, Program.UploadersConfig))
{
RadioButton rb = new RadioButton() { AutoSize = true };
diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs
index 2c92bc945..3119c515d 100644
--- a/ShareX/Forms/MainForm.cs
+++ b/ShareX/Forms/MainForm.cs
@@ -456,7 +456,7 @@ private void EnableDisableToolStripMenuItems(params ToolStripDropDownItem[] p
{
for (int i = 0; i < parent.DropDownItems.Count; i++)
{
- parent.DropDownItems[i].Enabled = Program.UploadersConfig.IsValid(i);
+ parent.DropDownItems[i].Enabled = UploadersConfigValidator.Validate(i, Program.UploadersConfig);
}
}
}
diff --git a/ShareX/Forms/TaskSettingsForm.cs b/ShareX/Forms/TaskSettingsForm.cs
index 623c94c39..998503514 100644
--- a/ShareX/Forms/TaskSettingsForm.cs
+++ b/ShareX/Forms/TaskSettingsForm.cs
@@ -550,7 +550,7 @@ private void EnableDisableToolStripMenuItems(params ToolStripDropDownItem[] p
{
for (int i = 0; i < parent.DropDownItems.Count; i++)
{
- parent.DropDownItems[i].Enabled = Program.UploadersConfig.IsValid(i);
+ parent.DropDownItems[i].Enabled = UploadersConfigValidator.Validate(i, Program.UploadersConfig);
}
}
}