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 virtual string[] Aliases { get; }
public virtual int MinParameterCount { get; } = 0;
public abstract string Call(ShareXCustomUploaderSyntaxParser parser, string[] parameters);

View file

@ -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)

View file

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

View file

@ -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))
{

View file

@ -133,10 +133,10 @@
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionBase64.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionFileName.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\CustomUploaderFunctionResponse.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionPrompt.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionInputBox.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionSelect.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionRandom.cs" />
<Compile Include="CustomUploader\Functions\CustomUploaderFunctionXml.cs" />