enrobie.plugins.autonick package#

Subpackages#

Submodules#

enrobie.plugins.autonick.params module#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enrobie.plugins.autonick.params.AutoNickPluginParams[source]#

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AutoNickPluginParams",
   "description": "Process and validate the Robie configuration parameters.",
   "type": "object",
   "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"
      },
      "clients": {
         "description": "List of clients to enable plugin",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Clients",
         "type": "array"
      },
      "interval": {
         "default": 5,
         "description": "Interval when nick is validated",
         "maximum": 300,
         "minimum": 5,
         "title": "Interval",
         "type": "integer"
      },
      "services": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/AutoNickPluginServiceParams"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "How to identify with services",
         "title": "Services"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "AutoNickPluginServiceParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where services exist",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "password": {
               "description": "Identify with nick services",
               "minLength": 1,
               "title": "Password",
               "type": "string"
            },
            "service": {
               "default": "NickServ",
               "description": "Nickname of network service",
               "minLength": 1,
               "title": "Service",
               "type": "string"
            }
         },
         "required": [
            "client",
            "password"
         ],
         "title": "AutoNickPluginServiceParams",
         "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"
      }
   },
   "additionalProperties": false,
   "required": [
      "clients"
   ]
}

Config:
  • extra: str = forbid

Fields:
field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]#

List of clients to enable plugin

Constraints:
  • min_length = 1

field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False#

Determine whether child enabled

field interval: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Interval when nick is validated', metadata=[Ge(ge=5), Le(le=300)])] = 5#

Interval when nick is validated

Constraints:
  • ge = 5

  • le = 300

field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None#

For which plugin are parameters

Constraints:
  • min_length = 1

field services: Annotated[list[AutoNickPluginServiceParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='How to identify with services')] = None#

How to identify with services

field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]#

Icon used per chat platform

field trusted: Annotated[list[str] | None, Field(None, description='Users are trusted by the plugin', min_length=1)] = None#

Users are trusted by the plugin

Constraints:
  • min_length = 1

pydantic model enrobie.plugins.autonick.params.AutoNickPluginServiceParams[source]#

Bases: RobieParamsModel

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AutoNickPluginServiceParams",
   "description": "Process and validate the Robie configuration parameters.",
   "type": "object",
   "properties": {
      "client": {
         "description": "Client where services exist",
         "minLength": 1,
         "title": "Client",
         "type": "string"
      },
      "password": {
         "description": "Identify with nick services",
         "minLength": 1,
         "title": "Password",
         "type": "string"
      },
      "service": {
         "default": "NickServ",
         "description": "Nickname of network service",
         "minLength": 1,
         "title": "Service",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "client",
      "password"
   ]
}

Config:
  • extra: str = forbid

Fields:
field client: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Client where services exist', metadata=[MinLen(min_length=1)])] [Required]#

Client where services exist

Constraints:
  • min_length = 1

field password: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Identify with nick services', metadata=[MinLen(min_length=1)])] [Required]#

Identify with nick services

Constraints:
  • min_length = 1

field service: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='NickServ', description='Nickname of network service', metadata=[MinLen(min_length=1)])] = 'NickServ'#

Nickname of network service

Constraints:
  • min_length = 1

enrobie.plugins.autonick.plugin module#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class enrobie.plugins.autonick.plugin.AutoNickPlugin(robie: Robie, name: str, params: RobieChildParams)[source]#

Bases: RobiePlugin

Integrate with the Robie routine and perform operations.

Note

This plugin maintains configured nickname on server.

operate() None[source]#

Perform the operation related to Robie service threads.

property params: AutoNickPluginParams#

Return the Pydantic model containing the configuration.

Returns:

Pydantic model containing the configuration.

classmethod schema() Type[AutoNickPluginParams][source]#

Return the configuration parameters relevant for class.

Returns:

Configuration parameters relevant for class.

validate() None[source]#

Perform advanced validation on the parameters provided.

Module contents#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class enrobie.plugins.autonick.AutoNickPlugin(robie: Robie, name: str, params: RobieChildParams)[source]#

Bases: RobiePlugin

Integrate with the Robie routine and perform operations.

Note

This plugin maintains configured nickname on server.

operate() None[source]#

Perform the operation related to Robie service threads.

property params: AutoNickPluginParams#

Return the Pydantic model containing the configuration.

Returns:

Pydantic model containing the configuration.

classmethod schema() Type[AutoNickPluginParams][source]#

Return the configuration parameters relevant for class.

Returns:

Configuration parameters relevant for class.

validate() None[source]#

Perform advanced validation on the parameters provided.

pydantic model enrobie.plugins.autonick.AutoNickPluginParams[source]#

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AutoNickPluginParams",
   "description": "Process and validate the Robie configuration parameters.",
   "type": "object",
   "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"
      },
      "clients": {
         "description": "List of clients to enable plugin",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Clients",
         "type": "array"
      },
      "interval": {
         "default": 5,
         "description": "Interval when nick is validated",
         "maximum": 300,
         "minimum": 5,
         "title": "Interval",
         "type": "integer"
      },
      "services": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/AutoNickPluginServiceParams"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "How to identify with services",
         "title": "Services"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "AutoNickPluginServiceParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where services exist",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "password": {
               "description": "Identify with nick services",
               "minLength": 1,
               "title": "Password",
               "type": "string"
            },
            "service": {
               "default": "NickServ",
               "description": "Nickname of network service",
               "minLength": 1,
               "title": "Service",
               "type": "string"
            }
         },
         "required": [
            "client",
            "password"
         ],
         "title": "AutoNickPluginServiceParams",
         "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"
      }
   },
   "additionalProperties": false,
   "required": [
      "clients"
   ]
}

Config:
  • extra: str = forbid

Fields:
field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]#

List of clients to enable plugin

Constraints:
  • min_length = 1

field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False#

Determine whether child enabled

field interval: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Interval when nick is validated', metadata=[Ge(ge=5), Le(le=300)])] = 5#

Interval when nick is validated

Constraints:
  • ge = 5

  • le = 300

field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None#

For which plugin are parameters

Constraints:
  • min_length = 1

field services: Annotated[list[AutoNickPluginServiceParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='How to identify with services')] = None#

How to identify with services

field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]#

Icon used per chat platform

field trusted: Annotated[list[str] | None, Field(None, description='Users are trusted by the plugin', min_length=1)] = None#

Users are trusted by the plugin

Constraints:
  • min_length = 1