From d7642182f1464a84b1cd0539d2108ce21c33be1e Mon Sep 17 00:00:00 2001 From: John Andrews Date: Mon, 12 Aug 2024 07:47:31 +1200 Subject: [PATCH] FF-1718: new flow element variable exists --- BasicNodes/File/FileExists.cs | 2 +- BasicNodes/File/VariableExists.cs | 56 ++++++++++++++++++++++++++++++ FileFlows.Plugin.dll | Bin 149504 -> 149504 bytes FileFlows.Plugin.pdb | Bin 37440 -> 37440 bytes 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 BasicNodes/File/VariableExists.cs diff --git a/BasicNodes/File/FileExists.cs b/BasicNodes/File/FileExists.cs index 1859556b..182b757c 100644 --- a/BasicNodes/File/FileExists.cs +++ b/BasicNodes/File/FileExists.cs @@ -15,7 +15,7 @@ public class FileExists: Node /// public override FlowElementType Type => FlowElementType.Logic; /// - public override string Icon => "fas fa-question-circle"; + public override string Icon => "fas fa-question"; /// public override string HelpUrl => "https://fileflows.com/docs/plugins/basic-nodes/file-exists"; /// diff --git a/BasicNodes/File/VariableExists.cs b/BasicNodes/File/VariableExists.cs new file mode 100644 index 00000000..63893222 --- /dev/null +++ b/BasicNodes/File/VariableExists.cs @@ -0,0 +1,56 @@ +using FileFlows.Plugin; +using FileFlows.Plugin.Attributes; + +namespace FileFlows.BasicNodes.File; + +/// +/// Checks if a file exists +/// +public class VariableExists: Node +{ + /// + public override int Inputs => 1; + /// + public override int Outputs => 2; + /// + public override FlowElementType Type => FlowElementType.Logic; + /// + public override string Icon => "fas fa-question"; + /// + public override string HelpUrl => "https://fileflows.com/docs/plugins/basic-nodes/variable-exists"; + /// + public override bool NoEditorOnAdd => true; + + + /// + /// Gets or sets the name of the variable to check + /// + [Text(1)] + public string Variable { get; set; } + + /// + public override int Execute(NodeParameters args) + { + string variable = Variable; + if(string.IsNullOrWhiteSpace(variable)) + { + args.FailureReason = "Variable not set"; + args.Logger?.ELog(args.FailureReason); + return -1; + } + + if (args.Variables.TryGetValue(variable, out var value) == false) + { + args.Logger?.ILog("Variable does not exist"); + return 2; + } + if (value == null) + { + args.Logger?.ILog("Variable exists but is null"); + return 2; + } + + args.Logger?.ILog("Variable exists and is not null"); + return 1; + } +} \ No newline at end of file diff --git a/FileFlows.Plugin.dll b/FileFlows.Plugin.dll index 6c580323115f7db1a50261b40326e62de682b53e..683e9ededdcef04508b4de6eb5369550615077a8 100644 GIT binary patch delta 250 zcmZpez}YZ?b3zBp%m2S$H1@RiFmCN(I-x0GxHU{8D#*oSRbETG*@1ak+f%fd3`H~& zladn66AcUulg%tl%#)KXEDa4z3@y!)QW8^)l9Ei#%~KMS(o!wA@3mvY{ z00*W3f%B?)VgmIRUaR-!T>q8*%5C}v2PS(3sOTz~C`f(6^tVD1)2?zz{$5zPo!^m3 zk;OleAqfZ*8O(v$00<2kk{QexEEr6HBFR8#!C(m#GXU}pfh;qi+7zJ56b2)(K2xA7 UbFfGfLmERWgXQ*mSEfcL00d)Cw*UYD delta 250 zcmZpez}YZ?b3zA8^n&Z1jXkYBj9Yt{PG|~DIa=+jf6>c#NzdlDU3@PEwx?(@8H#9F zrY0sQS|%AMn;Du~CYhL;nOLS7n;NC2r6s1Mq?xBCC7GL~8YLNR-)qOz&&aZ!@qf?s z00*W30h^TteEYj3Jol_BlIN+ex1GMhfyrJ0Dtfa9Dhg81FH$`3-r6s3=6==<+s^OE zq{!lL$&kvB$dC-gmJCS@#z2-CgCT<{m}df{%@|C8>@=W^DT5JEZ5j|JGNb@u8iP5I Wp9F;FKsBjA*(3&|?e(rqjZ6S~y-ffB diff --git a/FileFlows.Plugin.pdb b/FileFlows.Plugin.pdb index 522d5e8f8ae55dc04013d5dca22ccf4d8d73148a..255a9c9dfb824149c7ff2b560e351fac52643cfc 100644 GIT binary patch delta 3075 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 Nbk3$7t3MDi^aot=Dlz~7