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); } } }