Oh-nope IRC Services#

Configuration Container#

class ohnope.ohnope.OhnopeConfig(sargs: dict[str, Any] | None = None, files: str | Path | list[str | Path] | tuple[str | Path] | set[str] | None = None, cargs: dict[str, Any] | None = None)

Bases: Config

Contain the configurations from the arguments and files.

Parameters:
  • sargs – Additional arguments on the command line.

  • files – Complete or relative path to config files.

  • cargs – Configuration arguments in dictionary form, which will override contents from the config files.

merge_params() None

Update the Pydantic model containing the configuration.

property params: OhnopeParams

Return the Pydantic model containing the configuration.

Warning

This method completely overrides the parent but is based on that code, would be unfortunate if upstream changes meant this breaks or breaks something else.

Returns:

Pydantic model containing the configuration.

property robie: RobieConfig

Return the Config instance containing the configuration.

Returns:

Config instance containing the configuration.

Parameters Container#

pydantic model ohnope.ohnope.params.OhnopeParams

Bases: Params

Process and validate the core configuration parameters.

Show JSON schema
{
   "title": "OhnopeParams",
   "description": "Process and validate the core configuration parameters.",
   "type": "object",
   "properties": {
      "enconfig": {
         "anyOf": [
            {
               "$ref": "#/$defs/ConfigParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Config instance"
      },
      "enlogger": {
         "anyOf": [
            {
               "$ref": "#/$defs/LoggerParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Logger instance"
      },
      "encrypts": {
         "anyOf": [
            {
               "$ref": "#/$defs/CryptsParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Crypts instance"
      },
      "database": {
         "default": "sqlite:///:memory:",
         "description": "Database connection string",
         "minLength": 1,
         "title": "Database",
         "type": "string"
      },
      "printer": {
         "$ref": "#/$defs/RobiePrinterParams",
         "description": "Print messages to console"
      },
      "service": {
         "$ref": "#/$defs/RobieServiceParams",
         "description": "Parameters for Robie Service"
      },
      "peering": {
         "anyOf": [
            {
               "$ref": "#/$defs/OhnopeIRCSParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Server connection parameters"
      },
      "client": {
         "anyOf": [
            {
               "$ref": "#/$defs/OhnopeIRCParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Server connection parameters"
      },
      "persons": {
         "anyOf": [
            {
               "additionalProperties": {
                  "$ref": "#/$defs/OhnopePersonParams"
               },
               "minProperties": 1,
               "type": "object"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Robie persons",
         "title": "Persons"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginParams",
         "description": "Parameters for the plugin"
      },
      "rootserv": {
         "$ref": "#/$defs/RootServParams",
         "description": "Parameters for the plugin"
      },
      "operserv": {
         "$ref": "#/$defs/OperServParams",
         "description": "Parameters for the plugin"
      },
      "statserv": {
         "$ref": "#/$defs/StatServParams",
         "description": "Parameters for the plugin"
      },
      "nickserv": {
         "$ref": "#/$defs/NickServParams",
         "description": "Parameters for the plugin"
      },
      "chanserv": {
         "$ref": "#/$defs/ChanServParams",
         "description": "Parameters for the plugin"
      },
      "memoserv": {
         "$ref": "#/$defs/MemoServParams",
         "description": "Parameters for the plugin"
      },
      "hostserv": {
         "$ref": "#/$defs/HostServParams",
         "description": "Parameters for the plugin"
      },
      "helpserv": {
         "$ref": "#/$defs/HelpServParams",
         "description": "Parameters for the plugin"
      },
      "chatserv": {
         "$ref": "#/$defs/ChatServParams",
         "description": "Parameters for the plugin"
      }
   },
   "$defs": {
      "ChanServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "ChanServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Channel registration",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "CHANS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "ChanServParams",
         "type": "object"
      },
      "ChatServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "ChatServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Invitable LLM chatting",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "CHATS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "ChatServParams",
         "type": "object"
      },
      "ConfigParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "paths": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Location of configuration files",
               "title": "Paths"
            }
         },
         "title": "ConfigParams",
         "type": "object"
      },
      "CryptParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "phrase": {
               "description": "Passphrase for the operations",
               "minLength": 1,
               "title": "Phrase",
               "type": "string"
            }
         },
         "required": [
            "phrase"
         ],
         "title": "CryptParams",
         "type": "object"
      },
      "CryptsParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "phrases": {
               "additionalProperties": {
                  "$ref": "#/$defs/CryptParams"
               },
               "description": "Passphrases for the operations",
               "minProperties": 0,
               "title": "Phrases",
               "type": "object"
            }
         },
         "required": [
            "phrases"
         ],
         "title": "CryptsParams",
         "type": "object"
      },
      "HelpServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "HelpServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Help about the services",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "HELPS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "HelpServParams",
         "type": "object"
      },
      "HostServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "HostServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Host cloak management",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "HOSTS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "HostServParams",
         "type": "object"
      },
      "LoggerParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "stdo_level": {
               "anyOf": [
                  {
                     "enum": [
                        "critical",
                        "debug",
                        "error",
                        "info",
                        "warning"
                     ],
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Minimum logging message level",
               "title": "Stdo Level"
            },
            "file_level": {
               "anyOf": [
                  {
                     "enum": [
                        "critical",
                        "debug",
                        "error",
                        "info",
                        "warning"
                     ],
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Minimum logging message level",
               "title": "File Level"
            },
            "file_path": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Enable output to the log file",
               "title": "File Path"
            }
         },
         "title": "LoggerParams",
         "type": "object"
      },
      "MemoServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "MemoServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Offline message sharing",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "MEMOS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "MemoServParams",
         "type": "object"
      },
      "NickServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "NickServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Nickname registration",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "NICKS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "NickServParams",
         "type": "object"
      },
      "OhnopeIRCParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "port": {
               "default": 6900,
               "description": "Server address for connection",
               "maximum": 65535,
               "minimum": 1,
               "title": "Port",
               "type": "integer"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "nickname": {
               "default": "ohnope",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "username": {
               "default": "ohnope",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Username",
               "type": "string"
            },
            "realname": {
               "default": "Oh-nope IRC Services",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "channel": {
               "default": "#opers",
               "description": "Channel where client will join",
               "minLength": 1,
               "title": "Channel",
               "type": "string"
            },
            "ssl_enable": {
               "default": true,
               "description": "Enable connection encryption",
               "title": "Ssl Enable",
               "type": "boolean"
            },
            "ssl_verify": {
               "default": true,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "required": [
            "server"
         ],
         "title": "OhnopeIRCParams",
         "type": "object"
      },
      "OhnopeIRCSParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "port": {
               "default": 6900,
               "description": "Server address for connection",
               "maximum": 65535,
               "minimum": 1,
               "title": "Port",
               "type": "integer"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "password": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Parameter for the integration",
               "title": "Password"
            },
            "name": {
               "default": "services.invalid",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Name",
               "type": "string"
            },
            "unique": {
               "default": "42X",
               "description": "Unique identifier for services",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "about": {
               "default": "Chatting Robie",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "About",
               "type": "string"
            },
            "ssl_enable": {
               "default": true,
               "description": "Enable connection encryption",
               "title": "Ssl Enable",
               "type": "boolean"
            },
            "ssl_verify": {
               "default": true,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "required": [
            "server"
         ],
         "title": "OhnopeIRCSParams",
         "type": "object"
      },
      "OhnopePersonParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "enable": {
               "default": false,
               "description": "Determine whether child enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "first": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Additional optional information",
               "title": "First"
            },
            "last": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Additional optional information",
               "title": "Last"
            },
            "about": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Additional optional information",
               "title": "About"
            },
            "matches": {
               "description": "How the user will be identified",
               "items": {
                  "$ref": "#/$defs/RobiePersonMatchParams"
               },
               "title": "Matches",
               "type": "array"
            },
            "weight": {
               "default": 50,
               "description": "Determine order of precedence",
               "maximum": 100,
               "minimum": 1,
               "title": "Weight",
               "type": "integer"
            }
         },
         "required": [
            "matches"
         ],
         "title": "OhnopePersonParams",
         "type": "object"
      },
      "OperServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "OperServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Network administration",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "OPERS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "OperServParams",
         "type": "object"
      },
      "RobiePersonMatchParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where the user exists",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "match": {
               "description": "Values client uses to identify",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Match",
               "type": "array"
            }
         },
         "required": [
            "client",
            "match"
         ],
         "title": "RobiePersonMatchParams",
         "type": "object"
      },
      "RobiePrinterParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "message": {
               "default": false,
               "description": "Print the messages to console",
               "title": "Message",
               "type": "boolean"
            },
            "command": {
               "default": false,
               "description": "Print the commands to console",
               "title": "Command",
               "type": "boolean"
            }
         },
         "title": "RobiePrinterParams",
         "type": "object"
      },
      "RobieServiceParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "respite": {
               "$ref": "#/$defs/RobieServiceRespiteParams",
               "description": "When operates are performed"
            }
         },
         "title": "RobieServiceParams",
         "type": "object"
      },
      "RobieServiceRespiteParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "health": {
               "default": 3,
               "description": "How often health is checked",
               "maximum": 15,
               "minimum": 1,
               "title": "Health",
               "type": "integer"
            }
         },
         "title": "RobieServiceRespiteParams",
         "type": "object"
      },
      "RootServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "RootServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Network administration",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "ROOTS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "RootServParams",
         "type": "object"
      },
      "StatServParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "enable": {
               "default": true,
               "description": "Determine if service enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "nickname": {
               "default": "StatServ",
               "description": "What nickname for the service",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "realname": {
               "default": "Statistics and analysis",
               "description": "What realname for the service",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "unique": {
               "default": "STATS0",
               "description": "Unique identifier for service",
               "minLength": 1,
               "title": "Unique",
               "type": "string"
            },
            "status": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per chat platform"
            }
         },
         "title": "StatServParams",
         "type": "object"
      },
      "StatusPluginCommandParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "irc": {
               "default": "!status",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Irc",
               "type": "string"
            },
            "dsc": {
               "default": "!status",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Dsc",
               "type": "string"
            },
            "mtm": {
               "default": "!status",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Mtm",
               "type": "string"
            }
         },
         "title": "StatusPluginCommandParams",
         "type": "object"
      },
      "StatusPluginIconParams": {
         "additionalProperties": false,
         "description": "Contain information for constructing the chat messages.",
         "properties": {
            "irc": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Irc"
            },
            "dsc": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Dsc"
            },
            "mtm": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Mtm"
            }
         },
         "title": "StatusPluginIconParams",
         "type": "object"
      },
      "StatusPluginIconsParams": {
         "additionalProperties": false,
         "description": "Contain information for constructing the chat messages.",
         "properties": {
            "pending": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per the chat platform"
            },
            "normal": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per the chat platform"
            },
            "failure": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per the chat platform"
            },
            "unknown": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per the chat platform"
            }
         },
         "title": "StatusPluginIconsParams",
         "type": "object"
      },
      "StatusPluginParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "enable": {
               "default": false,
               "description": "Determine whether child enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "locate": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "For which plugin are parameters",
               "examples": [
                  "enrobie.plugins.AinswerPlugin",
                  "enrobie.plugins.AutoJoinPlugin",
                  "enrobie.plugins.AutoNickPlugin",
                  "enrobie.plugins.StatusPlugin"
               ],
               "title": "Locate"
            },
            "trusted": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Users are trusted by the plugin",
               "title": "Trusted"
            },
            "reports": {
               "anyOf": [
                  {
                     "items": {
                        "$ref": "#/$defs/StatusPluginReportParams"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Where to send status updates",
               "title": "Reports"
            },
            "command": {
               "$ref": "#/$defs/StatusPluginCommandParams",
               "description": "Command name per chat platform"
            },
            "icons": {
               "$ref": "#/$defs/StatusPluginIconsParams",
               "description": "Icon used per the chat platform"
            }
         },
         "title": "StatusPluginParams",
         "type": "object"
      },
      "StatusPluginReportParams": {
         "additionalProperties": false,
         "description": "Contain information for constructing the chat messages.",
         "properties": {
            "client": {
               "description": "Client where channel exists",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "target": {
               "description": "Where the message will be sent",
               "minLength": 1,
               "title": "Target",
               "type": "string"
            },
            "states": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "pending",
                           "normal",
                           "failure",
                           "unknown"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Which status value are related",
               "title": "States"
            },
            "delay": {
               "default": 15,
               "description": "Period between status reports",
               "maximum": 864000,
               "minimum": 0,
               "title": "Delay",
               "type": "integer"
            }
         },
         "required": [
            "client",
            "target"
         ],
         "title": "StatusPluginReportParams",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field chanserv: Annotated[ChanServParams, FieldInfo(annotation=NoneType, required=False, default_factory=ChanServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field chatserv: Annotated[ChatServParams, FieldInfo(annotation=NoneType, required=False, default_factory=ChatServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field client: Annotated[OhnopeIRCParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Server connection parameters')] = None

Server connection parameters

field database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'

Database connection string

Constraints:
  • min_length = 1

field helpserv: Annotated[HelpServParams, FieldInfo(annotation=NoneType, required=False, default_factory=HelpServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field hostserv: Annotated[HostServParams, FieldInfo(annotation=NoneType, required=False, default_factory=HostServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field memoserv: Annotated[MemoServParams, FieldInfo(annotation=NoneType, required=False, default_factory=MemoServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field nickserv: Annotated[NickServParams, FieldInfo(annotation=NoneType, required=False, default_factory=NickServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field operserv: Annotated[OperServParams, FieldInfo(annotation=NoneType, required=False, default_factory=OperServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field peering: Annotated[OhnopeIRCSParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Server connection parameters')] = None

Server connection parameters

field persons: Annotated[dict[str, OhnopePersonParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Robie persons', metadata=[MinLen(min_length=1)])] = None

Parameters for Robie persons

Constraints:
  • min_length = 1

field printer: Annotated[RobiePrinterParams, FieldInfo(annotation=NoneType, required=False, default_factory=RobiePrinterParams, description='Print messages to console')] [Optional]

Print messages to console

field rootserv: Annotated[RootServParams, FieldInfo(annotation=NoneType, required=False, default_factory=RootServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field service: Annotated[RobieServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=RobieServiceParams, description='Parameters for Robie Service')] [Optional]

Parameters for Robie Service

field statserv: Annotated[StatServParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatServParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin

field status: Annotated[StatusPluginParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginParams, description='Parameters for the plugin')] [Optional]

Parameters for the plugin