diff --git a/Apprise/Apprise.csproj b/Apprise/Apprise.csproj
index 0a789ddf..a62295e1 100644
Binary files a/Apprise/Apprise.csproj and b/Apprise/Apprise.csproj differ
diff --git a/Apprise/Plugin.cs b/Apprise/Plugin.cs
index f12c5128..ac9f3450 100644
--- a/Apprise/Plugin.cs
+++ b/Apprise/Plugin.cs
@@ -3,7 +3,7 @@ namespace FileFlows.Apprise;
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Apprise Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/BasicNodes/BasicNodes.csproj b/BasicNodes/BasicNodes.csproj
index e1e53544..f5a66865 100644
Binary files a/BasicNodes/BasicNodes.csproj and b/BasicNodes/BasicNodes.csproj differ
diff --git a/BasicNodes/Plugin.cs b/BasicNodes/Plugin.cs
index a71395ca..9aa56529 100644
--- a/BasicNodes/Plugin.cs
+++ b/BasicNodes/Plugin.cs
@@ -5,7 +5,7 @@ namespace FileFlows.BasicNodes
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Basic Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init() { }
}
diff --git a/ChecksumNodes/ChecksumNodes.csproj b/ChecksumNodes/ChecksumNodes.csproj
index 1d587c5c..b69b792b 100644
Binary files a/ChecksumNodes/ChecksumNodes.csproj and b/ChecksumNodes/ChecksumNodes.csproj differ
diff --git a/ChecksumNodes/Plugin.cs b/ChecksumNodes/Plugin.cs
index 17b376e9..23ca459f 100644
--- a/ChecksumNodes/Plugin.cs
+++ b/ChecksumNodes/Plugin.cs
@@ -3,7 +3,7 @@ namespace ChecksumNodes
public class Plugin : IPlugin
{
public string Name => "Checksum Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/CollectionNodes/CollectionNodes.csproj b/CollectionNodes/CollectionNodes.csproj
index e11220f9..14567a58 100644
Binary files a/CollectionNodes/CollectionNodes.csproj and b/CollectionNodes/CollectionNodes.csproj differ
diff --git a/CollectionNodes/Plugin.cs b/CollectionNodes/Plugin.cs
index fbcaad23..627e6b4c 100644
--- a/CollectionNodes/Plugin.cs
+++ b/CollectionNodes/Plugin.cs
@@ -6,7 +6,7 @@ namespace CollectionNodes
public class Plugin : IPlugin
{
public string Name => "Collection Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
[Folder(1)]
[Required]
diff --git a/DiscordNodes/DiscordNodes.csproj b/DiscordNodes/DiscordNodes.csproj
index 0c29df03..03705af6 100644
Binary files a/DiscordNodes/DiscordNodes.csproj and b/DiscordNodes/DiscordNodes.csproj differ
diff --git a/DiscordNodes/Plugin.cs b/DiscordNodes/Plugin.cs
index dc3c5021..2827a322 100644
--- a/DiscordNodes/Plugin.cs
+++ b/DiscordNodes/Plugin.cs
@@ -3,7 +3,7 @@ namespace FileFlows.DiscordNodes;
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Discord";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/EmailNodes/EmailNodes.csproj b/EmailNodes/EmailNodes.csproj
index 9f862235..363aced3 100644
Binary files a/EmailNodes/EmailNodes.csproj and b/EmailNodes/EmailNodes.csproj differ
diff --git a/EmailNodes/Plugin.cs b/EmailNodes/Plugin.cs
index f170190c..b945fe77 100644
--- a/EmailNodes/Plugin.cs
+++ b/EmailNodes/Plugin.cs
@@ -3,7 +3,7 @@
public class Plugin : IPlugin
{
public string Name => "Email";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/Emby/Emby.csproj b/Emby/Emby.csproj
index 2f3b21c2..6641c68d 100644
Binary files a/Emby/Emby.csproj and b/Emby/Emby.csproj differ
diff --git a/Emby/Plugin.cs b/Emby/Plugin.cs
index 8bbcb43e..b8206ac4 100644
--- a/Emby/Plugin.cs
+++ b/Emby/Plugin.cs
@@ -3,7 +3,7 @@ namespace FileFlows.Emby;
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Emby";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/Gotify/Gotify.csproj b/Gotify/Gotify.csproj
index ab12d49c..2c5aaf02 100644
Binary files a/Gotify/Gotify.csproj and b/Gotify/Gotify.csproj differ
diff --git a/Gotify/Plugin.cs b/Gotify/Plugin.cs
index 58d7f182..9e331ba6 100644
--- a/Gotify/Plugin.cs
+++ b/Gotify/Plugin.cs
@@ -3,7 +3,7 @@ namespace FileFlows.Gotify;
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Gotify Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/ImageNodes/ImageNodes.csproj b/ImageNodes/ImageNodes.csproj
index bf789a4a..68716761 100644
Binary files a/ImageNodes/ImageNodes.csproj and b/ImageNodes/ImageNodes.csproj differ
diff --git a/ImageNodes/Plugin.cs b/ImageNodes/Plugin.cs
index b3c740e3..9efe5bee 100644
--- a/ImageNodes/Plugin.cs
+++ b/ImageNodes/Plugin.cs
@@ -3,7 +3,7 @@ namespace FileFlows.ImageNodes;
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Image Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/MetaNodes/MetaNodes.csproj b/MetaNodes/MetaNodes.csproj
index 7f87b0c8..125d5b5e 100644
Binary files a/MetaNodes/MetaNodes.csproj and b/MetaNodes/MetaNodes.csproj differ
diff --git a/MetaNodes/Plugin.cs b/MetaNodes/Plugin.cs
index 4a55ec9a..41cf1cde 100644
--- a/MetaNodes/Plugin.cs
+++ b/MetaNodes/Plugin.cs
@@ -5,7 +5,7 @@ namespace MetaNodes
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Meta Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init() { }
}
diff --git a/MusicNodes/MusicNodes.csproj b/MusicNodes/MusicNodes.csproj
index f2d6889b..d9becabf 100644
Binary files a/MusicNodes/MusicNodes.csproj and b/MusicNodes/MusicNodes.csproj differ
diff --git a/MusicNodes/Plugin.cs b/MusicNodes/Plugin.cs
index b3ff5e29..581c743d 100644
--- a/MusicNodes/Plugin.cs
+++ b/MusicNodes/Plugin.cs
@@ -6,7 +6,7 @@ namespace FileFlows.MusicNodes
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Music Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/Plex/Plex.csproj b/Plex/Plex.csproj
index 001cc0ff..f04e9d6d 100644
Binary files a/Plex/Plex.csproj and b/Plex/Plex.csproj differ
diff --git a/Plex/Plugin.cs b/Plex/Plugin.cs
index 400c7676..a7ff5372 100644
--- a/Plex/Plugin.cs
+++ b/Plex/Plugin.cs
@@ -3,7 +3,7 @@ namespace FileFlows.Plex;
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Plex";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/VideoNodes/Plugin.cs b/VideoNodes/Plugin.cs
index 4edb0eff..37df9f0a 100644
--- a/VideoNodes/Plugin.cs
+++ b/VideoNodes/Plugin.cs
@@ -6,7 +6,7 @@ namespace FileFlows.VideoNodes
public class Plugin : FileFlows.Plugin.IPlugin
{
public string Name => "Video Nodes";
- public string MinimumVersion => "0.5.2.690";
+ public string MinimumVersion => "0.6.1.900";
public void Init()
{
diff --git a/VideoNodes/VideoNodes.csproj b/VideoNodes/VideoNodes.csproj
index 5e3954d8..4d5d4ac9 100644
Binary files a/VideoNodes/VideoNodes.csproj and b/VideoNodes/VideoNodes.csproj differ
diff --git a/build/utils/PluginInfoGenerator/FileFlows.ServerShared.dll b/build/utils/PluginInfoGenerator/FileFlows.ServerShared.dll
index eaf852c5..7c182e3c 100644
Binary files a/build/utils/PluginInfoGenerator/FileFlows.ServerShared.dll and b/build/utils/PluginInfoGenerator/FileFlows.ServerShared.dll differ
diff --git a/build/utils/PluginInfoGenerator/FileFlows.ServerShared.pdb b/build/utils/PluginInfoGenerator/FileFlows.ServerShared.pdb
index 0ae12b44..dccab33e 100644
Binary files a/build/utils/PluginInfoGenerator/FileFlows.ServerShared.pdb and b/build/utils/PluginInfoGenerator/FileFlows.ServerShared.pdb differ
diff --git a/build/utils/PluginInfoGenerator/FileFlows.ServerShared.xml b/build/utils/PluginInfoGenerator/FileFlows.ServerShared.xml
index 57f8b4fb..d20c0252 100644
--- a/build/utils/PluginInfoGenerator/FileFlows.ServerShared.xml
+++ b/build/utils/PluginInfoGenerator/FileFlows.ServerShared.xml
@@ -4,6 +4,97 @@
FileFlows.ServerShared
+
+
+ A logger that outputs to the console
+
+
+
+
+ Logs an information message
+
+ Any arguments for the log message
+
+
+
+ Logs an debug message
+
+ Any arguments for the log message
+
+
+
+ Logs an warning message
+
+ Any arguments for the log message
+
+
+
+ Logs an error message
+
+ Any arguments for the log message
+
+
+
+ Gets a tail of the log
+ NOTE: NOT IMPLEMENTED
+
+ The number of lines to fetch
+ NOT IMPLEMENTED
+
+
+
+ Gets the instance of the ILogger being used
+
+
+
+
+ A Logger that writes its output to file
+
+
+
+
+ Creates a file logger
+
+ The path where to save the log file to
+ The prefix to use for the log file name
+
+
+
+ Logs an information message
+
+ Any arguments for the log message
+
+
+
+ Logs an debug message
+
+ Any arguments for the log message
+
+
+
+ Logs an warning message
+
+ Any arguments for the log message
+
+
+
+ Logs an error message
+
+ Any arguments for the log message
+
+
+
+ Gets an isntance of the ILogger being used
+
+
+
+
+ Gets a tail of the log
+ NOTE: NOT IMPLEMENTED
+
+ The number of lines to fetch
+ NOT IMPLEMENTED
+
Globals variables
@@ -49,6 +140,13 @@
Gets if this is a Node or Server
+
+
+ Initializes the Directory Helper
+
+ True if running inside a docker
+ True if running on a node
+
Gets the base directory of FileFlows
@@ -105,6 +203,11 @@
Gets the location of the node configuration file
+
+
+ A helper for interacting with files
+
+
Removes illegal file/path characters from a string
@@ -119,18 +222,507 @@
The filename
The fingerprint
+
+
+ Helper used for UI Forms
+
+
+
+
+ Gets the form fields of a give type of object
+
+ The type of object to load the form fields of
+ The model used to bind to the form fields
+ A list of all form fields
+
This class will allow hot reloading of an plugin assembly so they can be update
This class should return nothing from a Plugin assembly and just common C# objects
+
+
+ Gets a list of all the plugins directories
+
+ a list of all the plugins directories
+
This needs to return an instance so the FlowExecutor can use it...
The flow part
- an insstance of the plugin node
+ an instance of the plugin node
+
+
+
+ The time helper provides help methods regarding scheduling
+
+
+
+
+ Gets the integer index of the current time quarter
+ A time quarter is a 15minute block, starting on Sunday at midnight.
+
+ The integer index of the current time quater
+
+
+
+ Checks if the current time is in the supplied schedule
+
+ The schedule to check
+ true if the current time is within the schedule
+
+
+
+ A logger that outputs to the console
+
+
+
+
+ Logs an information message
+
+ Any arguments for the log message
+
+
+
+ Logs an debug message
+
+ Any arguments for the log message
+
+
+
+ Logs an warning message
+
+ Any arguments for the log message
+
+
+
+ Logs an error message
+
+ Any arguments for the log message
+
+
+
+ Gets a tail of the log
+ NOTE: NOT IMPLEMENTED
+
+ The number of lines to fetch
+ NOT IMPLEMENTED
+
+
+
+ Gets the instance of the ILogger being used
+
+
+
+
+ The registration model data used when registering a node with the FileFlows server
+
+
+
+
+ Gets or sets the address (hostname or IP aaddres) of the node
+
+
+
+
+ Gets or sets the temporary path used by this node
+
+
+
+
+ Gets or sets the number of flow runners this node can run
+
+
+
+
+ Gets or sets if this node is enabled
+
+
+
+
+ Gets or sets any mappings this node uses
+ Mappings allow a file or folder local to the Server to be mapped to a location local to the Node
+
+
+
+
+ Gets or sets the type of operating system this node is running on
+
+
+
+
+ Gets or sets the version of this node
+
+
+
+
+ Mapping for server files and folders to files and folders local to a node
+
+
+
+
+ Gets or sets the address on the server to map
+
+
+
+
+ Gets or sets the local equivalent path on the node
+
+
+
+
+ Interface for a Flow Runner, which is responsible for executing a flow and processing files
+
+
+
+
+ Called when a flow execution starts
+
+ The information about the flow execution
+ The updated information
+
+
+
+ Called when the flow execution has completed
+
+ The information about the flow execution
+ a completed task
+
+
+
+ Called to update the status of the flow execution on the server
+
+ The information about the flow execution
+ a completed task
+
+
+
+ A flow runner which is responsible for executing a flow and processing files
+
+
+
+
+ Gets or sets the function that will load the flow runner when Load is called
+ This is used in unit testing to mock this runner
+
+
+
+
+ Loads a Flow Runner instance and returns it
+
+ a flow runner instance
+
+
+
+ Called when a flow execution starts
+
+ The information about the flow execution
+ The updated information
+
+
+
+ Called when the flow execution has completed
+
+ The information about the flow execution
+ a completed task
+
+
+
+ Called to update the status of the flow execution on the server
+
+ The information about the flow execution
+ a completed task
+
+
+
+ Interface for communicating with FileFlows server for flows
+
+
+
+
+ Gets a flow by its UID
+
+ The UID of the flow
+ An instance of the flow if found, otherwise null
+
+
+
+ Gets the Failure Flow for a specific library
+ This is the flow that is called if the flow fails
+
+ The UID of the library
+ An instance of the Failure Flow if found
+
+
+
+ Service for communicating with FileFlows server for flows
+
+
+
+
+ Gets or sets the function used to load an instance of the IFlowService
+
+
+
+
+ Loads an instance of the IFlowService
+
+ an instance of the IFlowService
+
+
+
+ Gets a flow by its UID
+
+ The UID of the flow
+ An instance of the flow if found, otherwise null
+
+
+
+ Gets the Failure Flow for a specific library
+ This is the flow that is called if the flow fails
+
+ The UID of the library
+ An instance of the Failure Flow if found
+
+
+
+ Interface for communicating with FileFlows server for library files
+
+
+
+
+ Gets the next library file queued for processing
+
+ The name of the node requesting a library file
+ The UID of the node
+ The UID of the worker on the node
+ If found, the next library file to process, otherwise null
+
+
+
+ Gets a library file by its UID
+
+ The UID of the library file
+ The library file if found, otherwise null
+
+
+
+ Deletes a library file
+
+ The UID of the library file
+ a completed task
+
+
+
+ Updates a library file
+
+ The library file to update
+ The newly updated library file
+
+
+
+ Saves the full library file log
+
+ The UID of the library file
+ The full plain text log to save
+ If it was successfully saved or not
+
+
+
+ Tests if a library file exists on server.
+ This is used to test if a mapping issue exists on the node, and will be called if a Node cannot find the library file
+
+ The UID of the library file
+ True if it exists on the server, otherwise false
+
+
+
+ Service for communicating with FileFlows server for library files
+
+
+
+
+ Gets or sets a function to load an instance of ILibraryFileService by the Load function
+
+
+
+
+ Loads an instance of the ILibraryFileService
+
+ an instance of the ILibraryFileService
+
+
+
+ Deletes a library file
+
+ The UID of the library file
+ a completed task
+
+
+
+ Tests if a library file exists on server.
+ This is used to test if a mapping issue exists on the node, and will be called if a Node cannot find the library file
+
+ The UID of the library file
+ True if it exists on the server, otherwise false
+
+
+
+ Gets a library file by its UID
+
+ The UID of the library file
+ The library file if found, otherwise null
+
+
+
+ Gets the next library file queued for processing
+
+ The name of the node requesting a library file
+ The UID of the node
+ The UID of the worker on the node
+ If found, the next library file to process, otherwise null
+
+
+
+ Saves the full library file log
+
+ The UID of the library file
+ The full plain text log to save
+ If it was successfully saved or not
+
+
+
+ Updates a library file
+
+ The library file to update
+ The newly updated library file
+
+
+
+ Interface for communicating with FileFlows server for libraries
+
+
+
+
+ Gets a library by its UID
+
+ The UID of the library
+ An instance of the library if found
+
+
+
+ Service for communicating with FileFlows server for libraries
+
+
+
+
+ Gets or sets a function to load an instance of a ILibraryService
+
+
+
+
+ Loads an instance of the library service
+
+ an instance of the library service
+
+
+
+ Gets a library by its UID
+
+ The UID of the library
+ An instance of the library if found
+
+
+
+ An interface for communicating with the server for all Processing Node related actions
+
+
+
+
+ Gets a processing node by its physical address
+
+ The address (hostname or IP address) of the node
+ An instance of the processing node
+
+
+
+ Gets an instance of the internal processing node
+
+ an instance of the internal processing node
+
+
+
+ Gets a tool path by name
+
+ The name of the tool
+ a tool path
+
+
+
+ Clears all workers on the node.
+ This is called when a node first starts up, if a node crashed when workers were running this will reset them
+
+ The UID of the node
+ a completed task
+
+
+
+ An Service for communicating with the server for all Processing Node related actions
+
+
+
+
+ Gets or sets a function used to load new instances of the service
+
+
+
+
+ Loads an instance of the node service
+
+ an instance of the node service
+
+
+
+ Clears all workers on the node.
+ This is called when a node first starts up, if a node crashed when workers were running this will reset them
+
+ The UID of the node
+ a completed task
+
+
+
+ Gets an instance of the internal processing node
+
+ an instance of the internal processing node
+
+
+
+ Gets a tool path by name
+
+ The name of the tool
+ a tool path
+
+
+
+ Gets a processing node by its physical address
+
+ The address (hostname or IP address) of the node
+ An instance of the processing node
+
+
+
+ Registers a node with FileFlows
+
+ The URL of the FileFlows Server
+ The address (Hostname or IP Address) of the node
+ The temporary path location of the node
+ The amount of flow runners this node can execute
+ If this node is enabled or not
+ Any mappings for the node
+ An instance of the registered node
+ If fails to register, an exception will be thrown
@@ -169,6 +761,11 @@
Plugin service
+
+
+ Gets or sets a function used to load new instances of the service
+
+
Loads an instance of the plugin service
@@ -203,6 +800,49 @@
the updated plugininfo
This not yet implemented
+
+
+ A service lets you communicate with the FileFLows server
+
+
+
+
+ Gets or sets the Base URL of the FileFlows server
+
+
+
+
+ Interface for the Settings service which allows accessing of all the system settings
+
+
+
+
+ Gets the system settings
+
+ the system settings
+
+
+
+ An instance of the Settings Service which allows accessing of the system settings
+
+
+
+
+ A loader to load an instance of the Settings
+
+
+
+
+ Loads an instance of the settings service
+
+ an instance of the settings service
+
+
+
+ Gets the system settings
+
+ the system settings
+
An interface of the System Service
@@ -295,6 +935,12 @@
A update has been downloaded
+
+
+ Prepares the application to be shutdown
+ Called after the update has been downloaded, but before it has run
+
+
Downloads an update
@@ -307,5 +953,66 @@
if auto updates are enabled
+
+
+ Downloads a file and saves it
+
+ The url of the file to download
+ the location to save the file
+ throws if the file fails to download
+
+
+
+ A worker that will run at a set schedule
+
+
+
+
+ Available schedule types
+
+
+
+
+ Gets or sets the amount seconds between each execution of this worker
+
+
+
+
+ Gets or sets the schedule of this worker
+
+
+
+
+ Creates an instance of a worker
+
+ the type of schedule this worker runs at
+ the interval of this worker
+
+
+
+ Start the worker
+
+
+
+
+ Stop the worker
+
+
+
+
+ A manager for the workers that run in the system
+
+
+
+
+ Starts a list of workers and keeps track of them
+
+ A list of workers to start
+
+
+
+ Stops all the currently running workers
+
+
diff --git a/build/utils/PluginInfoGenerator/FileFlows.Shared.dll b/build/utils/PluginInfoGenerator/FileFlows.Shared.dll
index 4b18ad0e..48914891 100644
Binary files a/build/utils/PluginInfoGenerator/FileFlows.Shared.dll and b/build/utils/PluginInfoGenerator/FileFlows.Shared.dll differ
diff --git a/build/utils/PluginInfoGenerator/FileFlows.Shared.pdb b/build/utils/PluginInfoGenerator/FileFlows.Shared.pdb
index a11fb18b..cd822efc 100644
Binary files a/build/utils/PluginInfoGenerator/FileFlows.Shared.pdb and b/build/utils/PluginInfoGenerator/FileFlows.Shared.pdb differ
diff --git a/build/utils/PluginInfoGenerator/FileFlows.Shared.xml b/build/utils/PluginInfoGenerator/FileFlows.Shared.xml
index 31d8b24f..95040533 100644
--- a/build/utils/PluginInfoGenerator/FileFlows.Shared.xml
+++ b/build/utils/PluginInfoGenerator/FileFlows.Shared.xml
@@ -4,6 +4,77 @@
FileFlows.Shared
+
+
+ A class used to convert objects from one type to another
+
+
+
+
+ Converts an object to a specific type
+
+ The type to convert to
+ The object to convert
+ The converted object
+
+
+
+ Converts a IEnumeable to an array
+
+ The IEnumerable to convert
+ The type of array to create
+ the type of the array to create
+ An array of the IEnumerable
+
+
+
+ Converts a IEnumeable to an list
+
+ The IEnumerable to convert
+ The type of array to create
+ the type of the array to create
+ An list of the IEnumerable
+
+
+
+ A list of types of operating systems
+
+
+
+
+ Unknown operating system
+
+
+
+
+ Windows operating system
+
+
+
+
+ Linux operating system
+
+
+
+
+ Mac/Apple operating system
+
+
+
+
+ A type of Flow
+
+
+
+
+ A standard flow
+
+
+
+
+ A special flow that is executed when a flow fails during execution
+
+
Extension methods used by FileFlows
@@ -39,11 +110,203 @@
the string to lowercase
the lowercased string
+
+
+ Formatter used to format bytes to a file size string
+
+
+
+
+ Formats a value as a file size
+
+ the value to format
+ the value as a file size
+
+
+
+ The sizable units
+
+
+
+
+ Formats a byte value as a string
+
+ The size in bytes
+ The size in a formatted string
+
+
+
+ A formatter will format an object as a string
+
+
+
+
+ A list of available formatter instances
+
+
+
+
+ Formats a value
+
+ the value to format
+ the formatted value
+
+
+
+ Formats a value
+
+ the formatter to use
+ the value to format
+ the formatted value
+
+
+
+ A helper for HTTP processing of requests
+
+
+
+
+ Gets or sets the HTTP Client used
+
+
+
+
+ Gets or sets the logger used
+
+
+
+
+ Performs a GET request
+
+ the type of object returned by the request
+ the URL to call
+ the request result
+
+
+
+ Performs a GET request
+
+ the type of object returned by the request
+ the URL to call
+ the number of seconds before a timeout occurs
+ if no logging should be done for this request
+ the request result
+
+
+
+ Performs a POST request
+
+ the URL to call
+ any data to send with the request
+ if no logging should be done for this request
+ the request result
+
+
+
+ Performs a POST request
+
+ the type of object returned by the request
+ the URL to call
+ any data to send with the request
+ the number of seconds before a timeout occurs
+ the request result
+
+
+
+ Performs a PUT request
+
+ the URL to call
+ any data to send with the request
+ the request result
+
+
+
+ Performs a PUT request
+
+ the type of object returned by the request
+ the URL to call
+ any data to send with the request
+ the request result
+
+
+
+ Perform a DELETE request
+
+ the URL to call
+ any data to send with the request
+ the request result
+
+
+
+ Logs a message to the log
+
+ the message to log
+
+
+
+ Makes a HTTP Request
+
+ The request method
+ The URL of the request
+ Any data to be sent with the request
+ the number of seconds to wait before a timeout
+ if the request show record nothing to the log
+ The request object returned
+ a processing result of the request
+
+
+
+ Converts an object to a json string content result
+
+ the object to convert
+ the object as a json string content
+
+
+
+ Utility to convert a plain text log to a colorized HTML log
+
+
+
+
+ Converts a plain text log to a HTML log
+
+ the plain text log
+ an HTML version of the log
+
+
+
+ Colorizes a section and converts to HTML
+
+ The section to colorize
+ the colorized string
+
+
+
+ HTML encodes a string
+
+ the string to encode
+ the HTML encoded string
+
Clones an object
+
+
+ Clones an object
+
+ the object to clone
+ the object type to clone
+ a cloned instance
+
+
+
+ Clones an object
+
+ the object to clone
+ A cloned instance
+
Checks if objects are teh same reference
@@ -64,11 +327,973 @@
the object
the objec hashcode
+
+
+ Array extensions
+
+
+
+
+ Method to perform a foreach
+
+ the array to foreach
+ the action to perform on each item
+
+
+
+ Array transverse
+
+
+
+
+ Array positional indexes
+
+
+
+
+ Transfers an array
+
+ the array to transverse
+
+
+
+ Step to the next item in the array
+
+ true if successful
+
+
+
+ Generic helper methods for objecst
+
+
+
+
+ Tests if two objects are logically the same
+
+ The first object to test
+ The second object to test
+ true if the objects are logically the same
+
+
+
+ JSON Convert for validators
+
+
+
+
+ Tests if an object type can be converted
+
+ the type to test
+ true if can be converted, otherwise false
+
+
+
+ Read and convert the JSON to T.
+
+
+ A converter may throw any Exception, but should throw JsonException when the JSON is invalid.
+
+ The to read from.
+ The being converted.
+ The being used.
+ The value that was converted.
+ Note that the value of determines if the converter handles null JSON tokens.
+
+
+
+ Write the value as JSON.
+
+
+ A converter may throw any Exception, but should throw JsonException when the JSON
+ cannot be created.
+
+ The to write to.
+ The value to convert. Note that the value of determines if the converter handles values.
+ The being used.
+
+
+
+ Converter used when flattening a Language json file to Dictionary
+
+
+
+
+ Write the value as JSON.
+
+
+ A converter may throw any Exception, but should throw JsonException when the JSON
+ cannot be created.
+
+ The to write to.
+ The value to convert. Note that the value of determines if the converter handles values.
+ The being used.
+
+
+
+ Read and convert the JSON to T.
+
+
+ A converter may throw any Exception, but should throw JsonException when the JSON is invalid.
+
+ The to read from.
+ The being converted.
+ The being used.
+ The value that was converted.
+ Note that the value of determines if the converter handles null JSON tokens.
+
+
+
+ Creates an IDictionary instance
+
+ an IDictionary instance
+
+
+
+ A logger used to write log messages
+
+
+
+
+ Gets or sets the instance of ILogger
+
+
+
+
+ An element field is a UI component that is displayed in the web browser
+
+
+
+
+ Gets or sets the order of which to display this filed
+
+
+
+
+ Gets or sets the type of this field
+
+
+
+
+ Gets or sets the name of this field
+
+
Gets or sets optional place holder text, this can be a translation key
+
+
+ Gets or sets the input type of this field
+
+
+
+
+ Gets or sets if this field is only only a UI field
+ and value will not be saved
+
+
+
+
+ Gets or sets the variables {} available to this field
+
+
+
+
+ Gets or sets the parameters of the field
+
+
+
+
+ Gets or sets the validators for the field
+
+
+
+
+ A delegate used when a value change event
+
+
+
+
+ A event that is raised when the value changes
+
+
+
+
+ A delegate used for the disabled change event
+
+
+
+
+ An event that is raised when the disable state of the field is changed
+
+
+
+
+ A delegate for when the conditions of the field changes
+
+
+
+
+ An event that is raised when the conditions of the field changes
+
+
+
+
+ Invokes the value changed event
+
+ The sender of the invoker
+ The value to invoke
+
+
+
+ Gets or sets the conditions used to disable this field
+
+
+
+
+ Gets or sets the conditions used to show this field
+
+
+
+
+ Invokes a condition
+
+ the condition to invokte
+ the condition state
+
+
+
+ A condition that determines if a element field is shown or disabled
+
+
+
+
+ Get or sets the Field this condition is attached to
+
+
+
+
+ Gets or sets the property this condition evaluates
+
+
+
+
+ Gets or sets the value used to when evaluating the condition
+
+
+
+
+ Gets or sets if the match is inversed, ie is not the value
+
+
+
+
+ Gets or sets if this condition is a match
+
+
+
+
+ Gets or sets the owner who owns this conditoin
+
+
+
+
+ Constructs a condition
+
+
+
+
+ Constructs a condition
+
+ the field the condition is attached to
+ the initial value of the field
+ the value to evaluate for
+ if the condition should NOT match the value
+
+
+
+ Sets the field
+
+ the field
+ the fields initial value
+
+
+
+ Fired when the field value changes
+
+ the sender object
+ the new field value
+
+
+
+ Test if the condition matches the given object value
+
+ the value to test the condition against
+ true if the condition is matches
+
+
+
+ Condition to test if a field is empty
+
+
+
+
+ Constructs a empty condition
+
+ the field this condition is attached to
+ the initial value of the field
+
+
+
+ Test if the condition matches the given object value
+
+ the value to test the condition against
+ true if the condition is matches
+
+
+
+ An item in the file browser
+
+
+
+
+ Gets or sets the short name of an item in the file browser
+
+
+
+
+ Gets or sets the fullname of the item
+
+
+
+
+ Gets or sets if the item is a path
+
+
+
+
+ Gets or sets if the item is a parent item
+
+
+
+
+ Gets or sets if the item is a drive
+
+
+
+
+ A file flow object
+ This is the base object for all database objects
+
+
+
+
+ Gets or sets the UID of the item
+
+
+
+
+ Gets or sets the name of the item
+
+
+
+
+ Gets or sets the date this item was created
+
+
+
+
+ Gets or sets the date this item was last modified
+
+
+
+
+ Interface used for unique objects.
+ This mean only one object of this type can exist in the database
+
+
+
+
+ Gets or sets the UID of the item
+
+
+
+
+ A flow
+
+
+
+
+ Gets or sets if the flow is enabled
+
+
+
+
+ Gets or sets the description of the flow
+
+
+
+
+ Gets or sets the type of flow
+
+
+
+
+ Gets or sets the template this flow is based on
+
+
+
+
+ Gets or sets the parts of this flow
+
+
+
+
+ A model for a flow templates
+
+
+
+
+ Gets or sets the flow
+
+
+
+
+ Gets or sets fields used in the template
+
+
+
+
+ Gets or sets the order this template appears
+
+
+
+
+ Gets or sets if this flow template should be saved after creation
+
+
+
+
+ Gets or sets the type of flow
+
+
+
+
+ A field used in templates
+
+
+
+
+ Gets or sets the UID of the template field
+
+
+
+
+ Gets or sets the type of the field
+
+
+
+
+ Gets or sets if this field is required
+
+
+
+
+ Gets or sets the name of this field
+
+
+
+
+ Gets or sets the label for this field
+
+
+
+
+ Gets or sets the help text for this field
+
+
+
+
+ Gets or sets the default value for this field
+
+
+
+
+ Gets or sets the value of this field
+
+
+
+
+ Gets or sets the parameters for this field
+
+
+
+
+ A flow element/node is a element that is a part of the flow
+
+
+
+
+ Gets or sets the UID of the element
+
+
+
+
+ Gets or sets the name of the element
+
+
+
+
+ Gets or sets the display name of the element
+
+
+
+
+ Formats the name and translated if needed
+
+ the name to format
+ the formateted name
+
+
+
+ Gets or sets the icon of the element
+
+
+
+
+ Gets or sets any variables this element exports
+
+
+
+
+ Gets or sets if no editor should be shown to the user when first adding this element
+
+
+
+
+ Gets or sets the number of inputs this element has
+
+
+
+
+ Gets or sets the number of outputs this element has
+
+
+
+
+ Gets or sets the url to the the help page for this node
+
+
+
+
+ Gets or sets the type of flow element
+
+
+
+
+ Gets or sets if this element is available to failure flows
+
+
+
+
+ Gets or sets the group this element belongs to
+
+
+
+
+ Gets or sets the output labels for this element
+
+
+
+
+ Gets or sets the fields this element has
+
+
+
+
+ Gets or sets the model for this element
+
+
+
+
+ Information used during the flow execution
+
+
+
+
+ Gets or sets the UID of the flow
+
+
+
+
+ Gets or sets the UID of the node execution this flow
+
+
+
+
+ Gets or sets the name of the Node executing this flow
+
+
+
+
+ Gets or sets the executing log for of the flow
+
+
+
+
+ Gets or sets the library file being executed
+
+
+
+
+ Gets or sets the relative file being executed
+
+
+
+
+ Gets or sets an object reference of the library
+ that the library file belongs
+
+
+
+
+ Gets or sets the path of the library
+
+
+
+
+ Gets or sets if a fingerprint should be taken of the final file
+
+
+
+
+ Gets or sets the size of the original file being processed
+
+
+
+
+ Gets or sets the file that is currently being worked on/executed
+
+
+
+
+ Gets or sets if the working file is actually a directory
+
+
+
+
+ Gets or sets the total parts in the flow that is executing
+
+
+
+
+ Gets or sets the index of the flow part that is currently executing
+
+
+
+
+ Gets or sets the name of the flow part that is currently executing
+
+
+
+
+ Gets or sets the current percent of the executing flow part
+
+
+
+
+ Gets or sets when the last update was reported to the server
+
+
+
+
+ Gets or sets when the flow execution started
+
+
+
+
+ Gets the total processing time of the flow
+
+
+
+
+ A flow part is a part/node of a flow that exeuctes
+
+
+
+
+ Gets or sets the UID of the flow part
+
+
+
+
+ Gets or sets the name of the flow part
+
+
+
+
+ Gets or sets the FlowElementUid this flow part is an instance of
+ This is the full name of the flow element, Namespace.TypeName
+
+
+
+
+ Gets or sets the x coordinate where this part appears on the canvas
+
+
+
+
+ Gets or sets the y coordinate where this part appears on the canvas
+
+
+
+
+ Gets or sets the icon of the flow part
+
+
+
+
+ Gets or sets the label of this flow part
+
+
+
+
+ Gets or sets the number of inputs this part has
+
+
+
+
+ Gets or sets the number of outputs this part has
+
+
+
+
+ Gets or sets the output connections of this flow part
+
+
+
+
+ Gets or sets the type of the flow part
+
+
+
+
+ Gets or sets the model of this flow part
+
+
+
+
+ A flow connection connects the input of a node to the output of another node
+
+
+
+
+ Gets or sets the Input number of the connecting node
+
+
+
+
+ Gets or sets the Output number of the connecitng node
+
+
+
+
+ Gets or sets the UID of input node this connection connects to
+
+
+
+
+ Flow worker status detailing information about a currently executing flow
+
+
+
+
+ Gets or sets the a unique id for this flow executor.
+ This is used so the flow can be cancelled and will be uniquely
+ generated when the flow starts
+
+
+
+
+ Gets or sets the current file being processed
+
+
+
+
+ Gets or sets the relative file of the executing file
+
+
+
+
+ Gets or sets an object reference of the library
+ where the currently executing file belongs
+
+
+
+
+ Gets or sets the current flow part
+
+
+
+
+ Gets or sets the current workign file
+
+
+
+
+ Gets the current process status
+
+
+
+
+ Gets or sets the total parts of the flow
+
+
+
+
+ Gets or sets the index of current flow part
+
+
+
+
+ Gets or sets the name of the current flow part
+
+
+
+
+ Gets or sets the percentage of the currently executing flow part
+
+
+
+
+ Gets or sets when this flow was started
+
+
+
+
+ Gets the current total processing time of the flow
+
+
+
+
+ The processing status
+
+
+
+
+ Waiting to be processed
+
+
+
+
+ Processing a file/folder
+
+
+
+
+ A model of the library file used in the UI
+ This model is used to reduce the data sent to the client browser
+
+
+
+
+ Gets or sets the UID of the library file
+
+
+
+
+ Gets or sets the name of the library file
+
+
+
+
+ Gets or sets the relative path of the file
+ This is the fullname of the file without the library path
+
+
+
+
+ Gets or sets a name of a file this is a duplicate of
+
+
+
+
+ Gets or sets the final size of the file after processing
+
+
+
+
+ Gets or sets the name of the flow that executed this file
+
+
+
+
+ Gets or sets the name of the library this file belongs
+
+
+
+
+ Gets or sets the name of the processing node that is executing/executed this file
+
+
+
+
+ Gets or sets the size of the original library file
+
+
+
+
+ Gets or sets the output path of the final file
+
+
+
+
+ Gets or sets the processing time taken of the file
+
+
+
+
+ A library that FileFlows will monitor for files to process
+
+
+
+
+ Gets or sets if this library is enabled
+
+
+
+
+ Gets or sets the path of the library
+
+
+
+
+ Gets or sets the filter used to determine what files to add ot the library files
+
+
+
+
+ Gets or sets the template this library is based on
+
+
+
+
+ Gets or sets the description of the library
+
+
+
+
+ Gets or sets the flow this library uses
+
+
+
+
+ Gets or sets if this library should be routinely scanned,
+ or if false, will listen for file system events.
+ If off the library will still be fully scanned every other hour
+
+
If this library monitors for folders or files
@@ -89,6 +1314,11 @@
Gets or sets if hidden files and folders should be excluded from the library
+
+
+ Gets or sets the schedule for this library
+
+
When the library was last scanned
@@ -114,11 +1344,223 @@
Gets or sets the processing priority of this library
+
+
+ Processing priority, used to prioritize library files for processing
+
+
+
+
+ Lowest priority
+
+
+
+
+ Low priority
+
+
+
+
+ Normal priority
+
+
+
+
+ High priority
+
+
+
+
+ Highest priority
+
+
+
+
+ A library file is a file that FileFlows will process
+
+
+
+
+ Gets or sets the relative path of the library file.
+ This is the path relative to the library
+
+
+
+
+ Gets or sets the path of the final output file
+
+
+
+
+ Gets or sets the flow that executed this file
+
+
Gets or sets a list of nodes that were executed against this library file
+
+
+ Gets or sets the library this library files belongs to
+
+
+
+
+ Gets or sets an object reference to an existing
+ library file that this file is a duplicate of
+
+
+
+
+ Gets or sets the size of the original library file
+
+
+
+
+ Gets or sets the size of the final file after processing
+
+
+
+
+ Gets or sets the fingerprint of the file
+
+
+
+
+ Gets or sets the node tha this processing/has processed the file
+
+
+
+
+ Gets or sets the UID of the worker that is executing this library file
+
+
+
+
+ Gets or sets when the file began processing
+
+
+
+
+ Gets or sets when the file finished processing
+
+
+
+
+ Gets or sets the processing status of the file
+
+
+
+
+ Gets or sets the order of the file when the file should be processed
+
+
+
+
+ Gets or sets if this library file is a directory
+
+
+
+
+ Gets the total processing time of the library file
+
+
+
+
+ Possible status of library files
+
+
+
+
+ The library is disabled and the file will not be processed
+
+
+
+
+ The library is out of schedule and will not process until it is in the processing schedule
+
+
+
+
+ The file has not been processed
+
+
+
+
+ The file has been successfully processed
+
+
+
+
+ The file is currently processing
+
+
+
+
+ The file cannot be processed as the flow configured for the library can not be found
+
+
+
+
+ THe file was processed, but exited with a failure
+
+
+
+
+ The file is a duplicate of an existing library file
+
+
+
+
+ The file could not be processed due to a mapping issue
+
+
+
+
+ A node/flow part that has been executed
+
+
+
+
+ Gets or sets the name of the node part
+
+
+
+
+ Gets or sets the UID of the node part
+
+
+
+
+ Gets or sets the time it took to process this node
+
+
+
+
+ Gets or sets the output from this node
+
+
+
+
+ Library status
+
+
+
+
+ Gets or sets the name of the status
+
+
+
+
+ Gets or sets the file status
+
+
+
+
+ Gets or sets the number of library files in this status
+
+
Arguments for hte Next Library File request
@@ -144,6 +1586,128 @@
Gets or sets the worker UID
+
+
+ Information about a plugin in FileFlows
+
+
+
+
+ Gets or sets if the plugin is enabled
+
+
+
+
+ Gets or sets the plugin version
+
+
+
+
+ Gets or sets if the plugin is deleted
+
+
+
+
+ Gets or sets if this plugin has settings
+
+
+
+
+ Gets or sets the URL of this plugin
+
+
+
+
+ Gets or sets the authors of the plugin
+
+
+
+
+ Gets or sets the description of the plugin
+
+
+
+
+ Gets or sets the minimum version of FileFlows this plugin requires
+
+
+
+
+ Gets or sets the name of the package of this plugin.
+ The packages name is the .ffplugin file
+
+
+
+
+ Gets or sets a list of settings elements used to construct the settings form
+
+
+
+
+ Gets or sets a list of elements/flowparts/nodes this plugin has
+
+
+
+
+ Gets or sets the model for plugin info
+
+
+
+
+ Gets or sets the latest version of this plugin
+
+
+
+
+ Gets if there is an update available for this plugin
+
+
+
+
+ Information about a plugin package
+
+
+
+
+ Gets or sets the name of the plugin
+
+
+
+
+ Gets or sets the version of the plugin
+
+
+
+
+ Gets or sets the authors of the plugin
+
+
+
+
+ Gets or sets the URL for the plugin
+
+
+
+
+ Gets or sets the description of the plugin
+
+
+
+
+ Gets or sets the package name of the plugin
+ The .ffplugin file
+
+
+
+
+ Gets or sets the minimum FileFlows version this plugin needs
+
+
+
+
+ Gets or sets the available flow elements/node in this plugin
+
+
A processing node used by FileFlows to process Library Files
@@ -243,6 +1807,42 @@
The mapped path
The unmapped path
+
+
+ A list of UIDs used for deleting/enabled etc
+
+
+
+
+ Gets or sets the UIDs
+
+
+
+
+ A HTTP request result
+
+ the type of object the request returns
+
+
+
+ Gets or sets if the request was successful
+
+
+
+
+ Gets or sets the HTML body of the request
+
+
+
+
+ Gets or sets the parsed response object
+
+
+
+
+ Settings for FileFlows
+
+
Gets or sets if plugins should automatically be updated when new version are available online
@@ -288,10 +1888,238 @@
Gets or sets the FileFlows version number
+
+
+ Information about how a library has shrunk after processing
+
+
+
+
+ Gets or sets the original size of the library files
+ in the library
+
+
+
+
+ Gets or sets the final size of the library files
+ in the library
+
+
+
+
+ Gets or sets number of processed files in the library
+
+
+
+
+ Gets the different of original size minus the final size,
+ i.e. how much the library has shrunk after processing
+
+
+
+
+ Statistics of overall processed files
+
+
+
+
+ Gets or set the nodes that have been executed
+
+
+
+
+ Records a node execution
+
+ The node to record
+
+
+
+ Statistics for executed nodes
+
+
+
+
+ Gets or sets the UID of the node
+
+
+
+
+ Gets or sets the recorded outputs of this node
+
+
+
+
+ Information about an executed node
+
+
+
+
+ Gets or set the output of the executed node
+
+
+
+
+ Gets or sets the processing time of the executed node
+
+
+
+
+ A tool in FileFlows, e.g. an external application
+
+
+
+
+ Gets or sets the path of the tool
+
+
+
+
+ Translater is responsible for language translations
+
+
+
+
+ Gets or sets the logger used by the translater when there are any translation issues
+
+
+
+
+ Translates a string if the string needs trnslating
+
+ The string to translate if needed
+ The translated string if needed, otherwise the original string
+
+
+
+ Gets if the translator has been initialized
+
+
+
+
+ Checks if a string needs translating
+
+ The string to test
+ if the string needs to be translated or not
+
+
+
+ Initializes the translator
+
+ a list of translation json files
+
+
+
+ Deserialized a json string and flattens it into a Dictionary using dot notation
+
+ The json string to flatten
+ a dictionary of the flatten json string
+
+
+
+ Translates a string
+
+ The string to translate
+ any translation parameters
+ if translation warnings should be suppressed and not printed to the log
+ the translated string
+
+
+
+ Attempts to translate from a range of possible keys.
+ The first key found in the translation dictionary will be returned
+
+ a list of possible translation keys
+ any translation parameters
+ if translation warnings should be suppressed and not printed to the log
+ the translated string
+
+
+
+ Translates a string if there is a translation for it
+
+ the key to translate
+ the default string to return if no translation is found
+ the translated string or default if not found
+
Used instead of null
+
+
+ Validates a value
+
+ the value to validate
+ If the value is valid or not
+
+
+
+ Validates a string against a regular expression
+
+
+
+
+ Gets or sets the expression to validate against
+
+
+
+
+ Validates the value against the regular expression
+
+ the value to validate
+ true if valid otherwise false
+
+
+
+ A validator to validate a number between a range of values
+
+
+
+
+ Gets or sets the minimum valid number
+
+
+
+
+ Gets or sets the maximum valid number
+
+
+
+
+ Validates a value against the range
+
+ the value to validate
+ true if the value is valid, otherwise false
+
+
+
+ Validator to a validate a object has a value
+
+
+
+
+ Validates the object has a value
+
+ The value to validate
+ true if the value has a propre value
+
+
+
+ A validator used to validate a value
+
+
+
+
+ Gets the name of the type of validator
+
+
+
+
+ Validates a value using the validator
+
+ the value to validate
+ true if the value is valid, otherwise false
+
diff --git a/build/utils/PluginInfoGenerator/PluginInfoGenerator.dll b/build/utils/PluginInfoGenerator/PluginInfoGenerator.dll
index 478a8033..366a8df4 100644
Binary files a/build/utils/PluginInfoGenerator/PluginInfoGenerator.dll and b/build/utils/PluginInfoGenerator/PluginInfoGenerator.dll differ
diff --git a/build/utils/PluginInfoGenerator/PluginInfoGenerator.pdb b/build/utils/PluginInfoGenerator/PluginInfoGenerator.pdb
index 7ed6fdbb..f2cddec8 100644
Binary files a/build/utils/PluginInfoGenerator/PluginInfoGenerator.pdb and b/build/utils/PluginInfoGenerator/PluginInfoGenerator.pdb differ