Added "Aliases" support to CustomUploaderFunction, renamed "{prompt}" to "{inputbox}", renamed "{output}" to "{outputbox}"

This commit is contained in:
Jaex 2023-04-15 00:09:21 +03:00
parent 00bdb927ea
commit e814747957
5 changed files with 30 additions and 17 deletions

View file

@ -29,6 +29,8 @@ internal abstract class CustomUploaderFunction
{ {
public abstract string Name { get; } public abstract string Name { get; }
public virtual string[] Aliases { get; }
public virtual int MinParameterCount { get; } = 0; public virtual int MinParameterCount { get; } = 0;
public abstract string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters); public abstract string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters);

View file

@ -28,16 +28,18 @@
namespace ShareX.UploadersLib namespace ShareX.UploadersLib
{ {
// Example: {prompt} // Example: {inputbox}
// Example: {prompt:title} // Example: {inputbox:title}
// Example: {prompt:title|default text} // Example: {inputbox:title|default text}
internal class CustomUploaderFunctionPrompt : CustomUploaderFunction 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) public override string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters)
{ {
string title = "ShareX - Prompt"; string title = "Input";
string defaultText = ""; string defaultText = "";
if (parameters.Length > 0) if (parameters.Length > 0)

View file

@ -27,30 +27,37 @@
namespace ShareX.UploadersLib namespace ShareX.UploadersLib
{ {
// Example: {output:text} // Example: {outputbox:text}
// Example: {output:title|text} // Example: {outputbox:title|text}
internal class CustomUploaderFunctionOutput : CustomUploaderFunction internal class CustomUploaderFunctionOutputBox : CustomUploaderFunction
{ {
public override string Name { get; } = "output"; public override string Name { get; } = "outputbox";
public override int MinParameterCount { get; } = 1; public override int MinParameterCount { get; } = 1;
public override string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters) public override string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters)
{ {
string text, title; string text, title = null;
if (parameters.Length > 1) if (parameters.Length > 1)
{ {
text = parameters[1];
title = parameters[0]; title = parameters[0];
text = parameters[1];
} }
else else
{ {
text = parameters[0]; 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; return null;
} }

View file

@ -26,6 +26,7 @@
using ShareX.HelpersLib; using ShareX.HelpersLib;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace ShareX.UploadersLib namespace ShareX.UploadersLib
{ {
@ -72,7 +73,8 @@ protected override string CallFunction(string functionName, string[] parameters
foreach (CustomUploaderFunction function in Functions) 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)) if (function.MinParameterCount > 0 && (parameters == null || parameters.Length < function.MinParameterCount))
{ {

View file

@ -133,10 +133,10 @@
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionBase64.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionBase64.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionFileName.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionFileName.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionInput.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionInput.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionOutput.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionOutputBox.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionResponseURL.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionResponseURL.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionResponse.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionResponse.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionPrompt.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionInputBox.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionSelect.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionSelect.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionRandom.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionRandom.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionXml.cs" /> <Compile Include="CustomUploader\Functions\CustomUploaderFunctionXml.cs" />