diff --git a/BasicNodes/BasicNodes.csproj b/BasicNodes/BasicNodes.csproj index e43b24e6..3063fce6 100644 Binary files a/BasicNodes/BasicNodes.csproj and b/BasicNodes/BasicNodes.csproj differ diff --git a/BasicNodes/BasicNodes.en.json b/BasicNodes/BasicNodes.en.json index 7775b37f..d7e36665 100644 --- a/BasicNodes/BasicNodes.en.json +++ b/BasicNodes/BasicNodes.en.json @@ -10,13 +10,22 @@ "Flow":{ "Parts": { "InputFile": { - "Description": "An input node for a library file. This is required and is the starting point of a flow. Any input node can be used, just one is required." + "Description": "An input node for a library file. This is required and is the starting point of a flow. Any input node can be used, just one is required.", + "Outputs": { + "1": "Library File" + } }, "InputFolder": { - "Description": "An input node for a folder. This will only work if the library using this flow is configured for folders." + "Description": "An input node for a folder. This will only work if the library using this flow is configured for folders.", + "Outputs": { + "1": "Library Folder" + } }, "CopyFile": { "Description": "Copies a file to the destination folder", + "Outputs": { + "1": "File copied" + }, "Fields": { "DestinationPath": "Destination Folder", "DestinationPath-Help": "The folder where the file will be copied to", @@ -28,6 +37,9 @@ }, "DeleteSourceDirectory": { "Label": "Delete Source Folder", + "Outputs": { + "1": "Source directory deleted" + }, "Description": "Deletes the source folder of the original library file", "Fields": { "IfEmpty": "If Empty", @@ -38,6 +50,10 @@ }, "Executor": { "Description": "Execute the following process against the file.\nOutput 1: The process returned the success exit code\nOutput 2: The process return a non-successful exit code.", + "Outputs": { + "1": "Process returned success", + "2": "Process returned failure" + }, "Fields": { "FileName": "File Name", "FileName-Help": "The name of the file to execute", @@ -58,6 +74,10 @@ }, "FileExtension": { "Description": "Checks if the file has one of the configured extensions.\n\nOutput 1: Matches\nOutput 2: Does not match", + "Outputs": { + "1": "Extension match", + "2": "Extension did not match" + }, "Fields": { "Extensions": "Extensions", "Extensions-Help": "A list of case insensitive file extensions that will be matched against.\nOutput 1 Matches\nOutput 2: Does not match" @@ -65,6 +85,10 @@ }, "FileExists": { "Description": "Checks if a file exists\n\nOutput 1: File exists\nOutput 2: File does not exist", + "Outputs": { + "1": "File exists", + "2": "File does not exist" + }, "Fields": { "FileName": "File Name", "FileName-Help": "The file to check if exists. This should be used with a variable from a previous node." @@ -72,6 +96,9 @@ }, "Delete": { "Description": "Deletes a file", + "Outputs": { + "1": "File deleted" + }, "Fields": { "FileName": "File Name", "FileName-Help": "If left blank the current working file will be deleted, or folder if library is folder based." @@ -79,6 +106,10 @@ }, "FileSize": { "Description": "Checks if the file size matches the configured parameters. The values are in megabytes.\n\nOutput 1: Matches\nOutput 2: Does not match", + "Outputs": { + "1": "File size within range", + "2": "File size not within range" + }, "Fields": { "Comparison": "Comparison", "Lower": "Lower", @@ -90,6 +121,18 @@ } }, "Function": { + "Outputs": { + "1": "returned 1", + "2": "returned 2", + "3": "returned 3", + "4": "returned 4", + "5": "returned 5", + "6": "returned 6", + "7": "returned 7", + "8": "returned 8", + "9": "returned 9", + "10": "returned 10" + }, "Fields": { "Outputs": "Outputs", "Outputs-Help": "The number of outputs this node can have.", @@ -105,6 +148,9 @@ }, "Log": { "Description": "Logs a message to the flow log", + "Outputs": { + "1": "Message logged" + }, "Fields": { "LogType": "Type", "Message": "Message" @@ -112,6 +158,9 @@ }, "MoveFile": { "Description": "Moves a file to the destination folder", + "Outputs": { + "1": "File moved" + }, "Fields": { "DestinationPath": "Destination Folder", "DestinationPath-Help": "The folder where the file will be moved to", @@ -125,6 +174,10 @@ }, "PatternMatch": { "Description": "Tests the working file and original file against a regular expression.\n\nOutput 1: Matches expression\nOutput 2: Does not match", + "Outputs": { + "1": "Matches expression", + "2": "Does NOT match" + }, "Fields": { "Pattern": "Pattern", "Pattern-Help": "A regular expression, using the C# specification for regular expressions." @@ -132,6 +185,10 @@ }, "PatternReplacer": { "Description": "Lets you make replacements in the filename. Can use regular expressions for replacements, or simple string replacements.\n\nOutput 1: Replacement done\nOutput 2: No replacement done", + "Outputs": { + "1": "Replacement done", + "2": "No replacement done" + }, "Fields": { "Replacements": "Replacements", "ReplacementsKey": "Pattern", @@ -141,10 +198,16 @@ } }, "ReplaceOriginal": { - "Description": "Replaces the original file with the working file.\n\nIf the extension is different on the working file, the original file will be deleted and the working file will be moved to the original with the new extension.\nE.g. from File.avi to File.mkv" + "Description": "Replaces the original file with the working file.\n\nIf the extension is different on the working file, the original file will be deleted and the working file will be moved to the original with the new extension.\nE.g. from File.avi to File.mkv", + "Outputs": { + "1": "Original file replaced" + } }, "Renamer": { "Description": "Renames the working file.\nVariables can be used by entering the key '{' inside the Pattern field.", + "Outputs": { + "1": "File renamed" + }, "Fields": { "Pattern": "Pattern", "DestinationPath": "Destination Folder", @@ -157,6 +220,9 @@ }, "Zip": { "Description": "Allows you to zip the input", + "Outputs": { + "1": "Zip created" + }, "Fields": { "DestinationPath": "Destination Folder", "DestinationPath-Help": "The destination folder where to put the zip file. If blank, the zip will be placed in the library root.", diff --git a/BasicNodes/File/FileExists.cs b/BasicNodes/File/FileExists.cs index f45fe600..58594fd6 100644 --- a/BasicNodes/File/FileExists.cs +++ b/BasicNodes/File/FileExists.cs @@ -7,6 +7,7 @@ namespace FileFlows.BasicNodes.File { public override int Inputs => 1; public override int Outputs => 2; + public override FlowElementType Type => FlowElementType.Logic; public override string Icon => "fas fa-question-circle"; diff --git a/ChecksumNodes/ChecksumNodes.csproj b/ChecksumNodes/ChecksumNodes.csproj index c0b9c810..50467310 100644 Binary files a/ChecksumNodes/ChecksumNodes.csproj and b/ChecksumNodes/ChecksumNodes.csproj differ diff --git a/ChecksumNodes/ChecksumNodes.en.json b/ChecksumNodes/ChecksumNodes.en.json index d4f0953d..9a7c471c 100644 --- a/ChecksumNodes/ChecksumNodes.en.json +++ b/ChecksumNodes/ChecksumNodes.en.json @@ -2,13 +2,22 @@ "Flow":{ "Parts": { "MD5Checksum": { - "Description": "Computes a MD5 checksum of the working file and stores it in the variable \"MD5\" and in \"Checksum\"." + "Description": "Computes a MD5 checksum of the working file and stores it in the variable \"MD5\" and in \"Checksum\".", + "Outputs": { + "1": "Checksum stored in variables \"MD5\" and \"Checksum\"" + } }, "SHA1Checksum": { - "Description": "Computes a SHA1 checksum of the working file and stores it in the variable \"SHA1\" and in \"Checksum\"." + "Description": "Computes a SHA1 checksum of the working file and stores it in the variable \"SHA1\" and in \"Checksum\".", + "Outputs": { + "1": "Checksum stored in variables \"SHA1\" and \"Checksum\"" + } }, "SHA256Checksum": { - "Description": "Computes a SHA256 checksum of the working file and stores it in the variable \"SHA256\" and in \"Checksum\"." + "Description": "Computes a SHA256 checksum of the working file and stores it in the variable \"SHA256\" and in \"Checksum\".", + "Outputs": { + "1": "Checksum stored in variables \"SHA256\" and \"Checksum\"" + } } } } diff --git a/CollectionNodes/CollectionNodes.csproj b/CollectionNodes/CollectionNodes.csproj index 16a4ccf5..8fe1b58d 100644 Binary files a/CollectionNodes/CollectionNodes.csproj and b/CollectionNodes/CollectionNodes.csproj differ diff --git a/CollectionNodes/CollectionNodes.en.json b/CollectionNodes/CollectionNodes.en.json index 65144753..79876bf9 100644 --- a/CollectionNodes/CollectionNodes.en.json +++ b/CollectionNodes/CollectionNodes.en.json @@ -3,6 +3,11 @@ "Parts": { "DataCollection": { "Description": "Checks a database for a key and a matching value. If not in the database, will add it to the database.\n\nOutput 1: Not in database\nOutput 2: In database and the same\nOutput 3: In datbase but value different.", + "Outputs": { + "1": "Not in database", + "2": "In database and same", + "3": "In database but value different" + }, "Fields": { "DatabaseFolder": "Database Folder", "DatabaseFolder-Help": "The location to save the SQLite database file. This folder must be accessible by every processing node.", diff --git a/MetaNodes/MetaNodes.csproj b/MetaNodes/MetaNodes.csproj index 4089d62d..d939f0de 100644 Binary files a/MetaNodes/MetaNodes.csproj and b/MetaNodes/MetaNodes.csproj differ diff --git a/MetaNodes/MetaNodes.en.json b/MetaNodes/MetaNodes.en.json index 3a302cb7..92be5139 100644 --- a/MetaNodes/MetaNodes.en.json +++ b/MetaNodes/MetaNodes.en.json @@ -3,13 +3,17 @@ "Parts": { "MovieLookup": { "Description": "Looks performs a search on TheMovieDB.org.\nStores the Metadata inside the parameter 'MovieInfo'.\n\nOutputs 1: Movie found\nOutputs 2: Movie not found", + "Outputs": { + "1": "Movie found", + "2": "Movie NOT found" + }, "Fields": { "UseFolderName": "Use Folder Name", "UseFolderName-Help": "If the folder name should be used instead of the filename." } }, "MovieRenamer": { - "Description": "Renames the working file using the metadata stored in 'MovieInfo'.\nNote: MovieLookup should be executed in the flow before this node to work.\n\nOutput 1: File was renamed\nOutput 2: File failed to be renamed", + "Description": "Renames the working file using the metadata stored in 'MovieInfo'.\nNote: MovieLookup should be executed in the flow before this node to work.\n\nOutput 1: File was renamed\nOutput 2: File failed to be renamed", "Fields": { "Pattern": "Pattern", "Pattern-Help": "The pattern to use to rename the folder. '{Title}', '{Year}', '{Extension}'.", diff --git a/VideoNodes/VideoNodes.csproj b/VideoNodes/VideoNodes.csproj index e2b66887..552d725b 100644 Binary files a/VideoNodes/VideoNodes.csproj and b/VideoNodes/VideoNodes.csproj differ diff --git a/VideoNodes/VideoNodes.en.json b/VideoNodes/VideoNodes.en.json index 3e3cbab4..9f717ba8 100644 --- a/VideoNodes/VideoNodes.en.json +++ b/VideoNodes/VideoNodes.en.json @@ -2,6 +2,10 @@ "Flow":{ "Parts": { "AudioTrackReorder": { + "Outputs": { + "1": "Audio tracks re-ordred", + "2": "Audio tracks NOT re-ordered" + }, "Description": "Allows you to reorder audio tracks in the preferred order.\n\nEnter the languages/audio codecs in the order you want. Any not listed will be ordered after the ones entered in their original order.\nIf there are multiple tracks with same language/codec, they will be ordered first by the order you entered, then in their original order.\n\nOutput 1: Audio tracks were reordered\nOutput 2: Audio tracks did not need reordering", "Fields": { "OrderedTracks": "Ordered Audio Codecs", @@ -12,6 +16,10 @@ }, "AudioTrackSetLanguage": { "Label": "Audio: Set Language", + "Outputs": { + "1": "Audio tracks updated", + "2": "Audio tracks NOT updated" + }, "Description": "Allows you to set the language for any audio tracks that have no language set. If the audio track does have a language set, it will be skipped.\n\nOutput 1: Audio Tracks were updated\nOutput 2: No audio tracks were needing to be updated", "Fields": { "Language": "Language", @@ -19,10 +27,17 @@ } }, "VideoFile": { - "Description": "An input video file that has had its VideoInformation read and can be processed" + "Description": "An input video file that has had its VideoInformation read and can be processed", + "Outputs": { + "1": "Video file from library" + } }, "DetectBlackBars": { "Description": "Processes a video file and scans for black bars in the video.\n\nIf found a parameter \"VideoCrop\" will be added.\n\nOutput 1: Black bars detected\nOutput 2: Not detected", + "Outputs": { + "1": "Black bars detected", + "2": "No black bars detected" + }, "Fields": { "CroppingThreshold": "Threshold", "CroppingThreshold-Help": "The amount of pixels that must be greater than to crop. E.g. if there's only 5 pixels detected as black space, you may consider this too small to crop." @@ -30,6 +45,9 @@ }, "FFMPEG": { "Description": "The node lets you run any FFMPEG command you like. Giving you full control over what it can do.\n\nFor more information refer to the FFMPEG documentation", + "Outputs": { + "1": "Video processed" + }, "Fields": { "Extension": "Extension", "Extension-Help": "The file extension to use on the newly created file", @@ -39,12 +57,20 @@ }, "SubtitleRemover": { "Description": "Removes subtitles from a video file if found.\n\nOutput 1: Subtitles were removed\nOutput 2: No subtitles found that needed to be removed", + "Outputs": { + "1": "Subtitles removed", + "2": "No subtitles to remove" + }, "Fields": { "SubtitlesToRemove": "Subtitles To Remove" } }, "SubtitleExtractor": { "Description": "Extract a single subtitle tracks and saves it to the destination. Can extract srt, ass, and ssa format.\nThis will NOT update the working file, and will keep the working file the same as the input file.\n\nOutput 1: Subtitles were extracted\nOutput 2: No subtitles found to extract", + "Outputs": { + "1": "Subtitles extracted", + "2": "No subtitles extracted" + }, "Fields": { "Language": "Language", "Language-Help": "The ISO 639-2 language code to use. \nhttps://en.wikipedia.org/wiki/List_of_ISO_639-2_codes", @@ -61,6 +87,10 @@ }, "VideoEncode": { "Description": "A generic video encoding node, this lets you customize how to encode a video file using ffmpeg.\n\nOutput 1: Video was processed\nOutput 2: No processing required", + "Outputs": { + "1": "Video re-encoded", + "2": "Video not re-encoded" + }, "Fields": { "Extension": "Extension", "Extension-Help": "The file extension to use on the newly created file.", @@ -76,6 +106,10 @@ }, "Video_H265_AC3": { "Description": "This will ensure all videos are encoded in H265 (if not already encoded) and that AC3 audio is the first audio channel\n\nOutput 1: Video was processed\nOutput 2: No processing required", + "Outputs": { + "1": "Video re-encoded", + "2": "Video not re-encoded" + }, "Fields": { "Language": "Language", "Language-Help": "Optional ISO 639-2 language code to use. Will attempt to find an audio track with this language code if not the best audio track will be used.\nhttps://en.wikipedia.org/wiki/List_of_ISO_639-2_codes", @@ -93,6 +127,9 @@ }, "VideoScaler": { "Description": "This allows you to scale a video to the specified dimensions. It will retain the aspect ratio of the video so if the video was 1920x1000 it would scale to 1280x668 if you select 720P.", + "Outputs": { + "1": "Video rescaled" + }, "Fields": { "VideoCodec": "Video Codec", "Language-Help": "The video codec to encode the scaled video in",