enrobie.plugins.autojoin package#

Subpackages#

Submodules#

enrobie.plugins.autojoin.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.autojoin.params.AutoJoinPluginChannelParams[source]#

Bases: RobieParamsModel

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AutoJoinPluginChannelParams",
   "description": "Process and validate the Robie configuration parameters.",
   "type": "object",
   "properties": {
      "client": {
         "description": "Client where channel exists",
         "minLength": 1,
         "title": "Client",
         "type": "string"
      },
      "channel": {
         "description": "Name of channel to remain joined",
         "minLength": 1,
         "title": "Channel",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "client",
      "channel"
   ]
}

Config:
  • extra: str = forbid

Fields:
field channel: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Name of channel to remain joined', metadata=[MinLen(min_length=1)])] [Required]#

Name of channel to remain joined

Constraints:
  • min_length = 1

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

Client where channel exists

Constraints:
  • min_length = 1

pydantic model enrobie.plugins.autojoin.params.AutoJoinPluginParams[source]#

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AutoJoinPluginParams",
   "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"
      },
      "channels": {
         "description": "Which channels to maintain join",
         "items": {
            "$ref": "#/$defs/AutoJoinPluginChannelParams"
         },
         "minItems": 1,
         "title": "Channels",
         "type": "array"
      },
      "interval": {
         "default": 5,
         "description": "Interval when channels are joined",
         "maximum": 300,
         "minimum": 5,
         "title": "Interval",
         "type": "integer"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "AutoJoinPluginChannelParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where channel exists",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "channel": {
               "description": "Name of channel to remain joined",
               "minLength": 1,
               "title": "Channel",
               "type": "string"
            }
         },
         "required": [
            "client",
            "channel"
         ],
         "title": "AutoJoinPluginChannelParams",
         "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": [
      "channels"
   ]
}

Config:
  • extra: str = forbid

Fields:
field channels: Annotated[list[AutoJoinPluginChannelParams], FieldInfo(annotation=NoneType, required=True, description='Which channels to maintain join', metadata=[MinLen(min_length=1)])] [Required]#

Which channels to maintain join

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 channels are joined', metadata=[Ge(ge=5), Le(le=300)])] = 5#

Interval when channels are joined

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 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

enrobie.plugins.autojoin.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.autojoin.plugin.AutoJoinPlugin(robie: Robie, name: str, params: RobieChildParams)[source]#

Bases: RobiePlugin

Integrate with the Robie routine and perform operations.

Note

This plugin maintains joined for configured channels.

operate() None[source]#

Perform the operation related to Robie service threads.

property params: AutoJoinPluginParams#

Return the Pydantic model containing the configuration.

Returns:

Pydantic model containing the configuration.

classmethod schema() Type[AutoJoinPluginParams][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.autojoin.AutoJoinPlugin(robie: Robie, name: str, params: RobieChildParams)[source]#

Bases: RobiePlugin

Integrate with the Robie routine and perform operations.

Note

This plugin maintains joined for configured channels.

operate() None[source]#

Perform the operation related to Robie service threads.

property params: AutoJoinPluginParams#

Return the Pydantic model containing the configuration.

Returns:

Pydantic model containing the configuration.

classmethod schema() Type[AutoJoinPluginParams][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.autojoin.AutoJoinPluginParams[source]#

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AutoJoinPluginParams",
   "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"
      },
      "channels": {
         "description": "Which channels to maintain join",
         "items": {
            "$ref": "#/$defs/AutoJoinPluginChannelParams"
         },
         "minItems": 1,
         "title": "Channels",
         "type": "array"
      },
      "interval": {
         "default": 5,
         "description": "Interval when channels are joined",
         "maximum": 300,
         "minimum": 5,
         "title": "Interval",
         "type": "integer"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "AutoJoinPluginChannelParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where channel exists",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "channel": {
               "description": "Name of channel to remain joined",
               "minLength": 1,
               "title": "Channel",
               "type": "string"
            }
         },
         "required": [
            "client",
            "channel"
         ],
         "title": "AutoJoinPluginChannelParams",
         "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": [
      "channels"
   ]
}

Config:
  • extra: str = forbid

Fields:
field channels: Annotated[list[AutoJoinPluginChannelParams], FieldInfo(annotation=NoneType, required=True, description='Which channels to maintain join', metadata=[MinLen(min_length=1)])] [Required]#

Which channels to maintain join

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 channels are joined', metadata=[Ge(ge=5), Le(le=300)])] = 5#

Interval when channels are joined

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 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