From e814747957891645e0d2a83413338ed03ac30673 Mon Sep 17 00:00:00 2001 From: Jaex Date: Sat, 15 Apr 2023 00:09:21 +0300 Subject: [PATCH] Added "Aliases" support to CustomUploaderFunction, renamed "{prompt}" to "{inputbox}", renamed "{output}" to "{outputbox}" --- .../Functions/CustomUploaderFunction.cs | 2 ++ ...t.cs => CustomUploaderFunctionInputBox.cs} | 14 ++++++----- ....cs => CustomUploaderFunctionOutputBox.cs} | 23 ++++++++++++------- .../ShareXCustomUploaderSyntaxParser.cs | 4 +++- .../ShareX.UploadersLib.csproj | 4 ++-- 5 files changed, 30 insertions(+), 17 deletions(-) rename ShareX.UploadersLib/CustomUploader/Functions/{CustomUploaderFunctionPrompt.cs => CustomUploaderFunctionInputBox.cs} (83%) rename ShareX.UploadersLib/CustomUploader/Functions/{CustomUploaderFunctionOutput.cs => CustomUploaderFunctionOutputBox.cs} (75%) diff --git a/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunction.cs b/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunction.cs index 0af04ccdd..d37e6952e 100644 --- a/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunction.cs +++ b/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunction.cs @@ -29,6 +29,8 @@ internal abstract class CustomUploaderFunction { public abstract string Name { get; } + public virtual string[] Aliases { get; } + public virtual int MinParameterCount { get; } = 0; public abstract string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters); diff --git a/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionPrompt.cs b/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionInputBox.cs similarity index 83% rename from ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionPrompt.cs rename to ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionInputBox.cs index 937a567d1..4e3b6cd6c 100644 --- a/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionPrompt.cs +++ b/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionInputBox.cs @@ -28,16 +28,18 @@ namespace ShareX.UploadersLib { - // Example: {prompt} - // Example: {prompt:title} - // Example: {prompt:title|default text} - internal class CustomUploaderFunctionPrompt : CustomUploaderFunction + // Example: {inputbox} + // Example: {inputbox:title} + // Example: {inputbox:title|default text} + internal class CustomUploaderFunctionInputBox : CustomUploaderFunction { - public override string Name { get; } = "prompt"; + public override string Name { get; } = "inputbox"; + + public override string[] Aliases { get; } = new string[] { "prompt" }; public override string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters) { - string title = "ShareX - Prompt"; + string title = "Input"; string defaultText = ""; if (parameters.Length > 0) diff --git a/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionOutput.cs b/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionOutputBox.cs similarity index 75% rename from ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionOutput.cs rename to ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionOutputBox.cs index c1df5996b..f2df8d456 100644 --- a/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionOutput.cs +++ b/ShareX.UploadersLib/CustomUploader/Functions/CustomUploaderFunctionOutputBox.cs @@ -27,30 +27,37 @@ namespace ShareX.UploadersLib { - // Example: {output:text} - // Example: {output:title|text} - internal class CustomUploaderFunctionOutput : CustomUploaderFunction + // Example: {outputbox:text} + // Example: {outputbox:title|text} + internal class CustomUploaderFunctionOutputBox : CustomUploaderFunction { - public override string Name { get; } = "output"; + public override string Name { get; } = "outputbox"; public override int MinParameterCount { get; } = 1; public override string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters) { - string text, title; + string text, title = null; if (parameters.Length > 1) { - text = parameters[1]; title = parameters[0]; + text = parameters[1]; } else { text = parameters[0]; - title = "ShareX - Output"; } - OutputBox.Show(text, title); + if (!string.IsNullOrEmpty(text)) + { + if (string.IsNullOrEmpty(title)) + { + title = "Output"; + } + + OutputBox.Show(text, title); + } return null; } diff --git a/ShareX.UploadersLib/CustomUploader/ShareXCustomUploaderSyntaxParser.cs b/ShareX.UploadersLib/CustomUploader/ShareXCustomUploaderSyntaxParser.cs index 1669cec55..08f5db969 100644 --- a/ShareX.UploadersLib/CustomUploader/ShareXCustomUploaderSyntaxParser.cs +++ b/ShareX.UploadersLib/CustomUploader/ShareXCustomUploaderSyntaxParser.cs @@ -26,6 +26,7 @@ using ShareX.HelpersLib; using System; using System.Collections.Generic; +using System.Linq; namespace ShareX.UploadersLib { @@ -72,7 +73,8 @@ protected override string CallFunction(string functionName, string[] parameters foreach (CustomUploaderFunction function in Functions) { - if (function.Name.Equals(functionName, StringComparison.OrdinalIgnoreCase)) + if (function.Name.Equals(functionName, StringComparison.OrdinalIgnoreCase) || + (function.Aliases != null && function.Aliases.Any(x => x.Equals(functionName, StringComparison.OrdinalIgnoreCase)))) { if (function.MinParameterCount > 0 && (parameters == null || parameters.Length < function.MinParameterCount)) { diff --git a/ShareX.UploadersLib/ShareX.UploadersLib.csproj b/ShareX.UploadersLib/ShareX.UploadersLib.csproj index a04a2e3fe..d32621736 100644 --- a/ShareX.UploadersLib/ShareX.UploadersLib.csproj +++ b/ShareX.UploadersLib/ShareX.UploadersLib.csproj @@ -133,10 +133,10 @@ - + - +