enrobie.plugins.autojoin package#

Submodules#

enrobie.plugins.autojoin.params module#

class enrobie.plugins.autojoin.params.AutoJoinPluginChannelParams[source]#

Bases: RobieParamsModel

Process and validate the Robie configuration parameters.

Fields#

Field

Type

Required

Default

Constraints

channel

str

Yes

min_length=1

client

str

Yes

min_length=1

client: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Client where channel exists', metadata=[MinLen(min_length=1)])]#
channel: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Name of channel to remain joined', metadata=[MinLen(min_length=1)])]#
class enrobie.plugins.autojoin.params.AutoJoinPluginParams[source]#

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Fields#

Field

Type

Required

Default

Constraints

channels

list[AutoJoinPluginChannelParams]

Yes

min_length=1

enable

bool

No

False

interval

int

No

5

ge=5, le=300

locate

str | None

No

None

min_length=1

status

StatusPluginIconParams

No

factory

trusted

list[str] | None

No

None

min_length=1

channels: Annotated[list[AutoJoinPluginChannelParams], FieldInfo(annotation=NoneType, required=True, description='Which channels to maintain join', metadata=[MinLen(min_length=1)])]#
interval: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Interval when channels are joined', metadata=[Ge(ge=5), Le(le=300)])]#
status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')]#

enrobie.plugins.autojoin.plugin module#

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.

validate() None[source]#

Perform advanced validation on the parameters provided.

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

Return the configuration parameters relevant for class.

Returns:

Configuration parameters relevant for class.

property params: AutoJoinPluginParams#

Return the Pydantic model containing the configuration.

Returns:

Pydantic model containing the configuration.

operate() None[source]#

Perform the operation related to Robie service threads.

Module contents#

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.

validate() None[source]#

Perform advanced validation on the parameters provided.

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

Return the configuration parameters relevant for class.

Returns:

Configuration parameters relevant for class.

property params: AutoJoinPluginParams#

Return the Pydantic model containing the configuration.

Returns:

Pydantic model containing the configuration.

operate() None[source]#

Perform the operation related to Robie service threads.

class enrobie.plugins.autojoin.AutoJoinPluginParams[source]#

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Fields#

Field

Type

Required

Default

Constraints

channels

list[AutoJoinPluginChannelParams]

Yes

min_length=1

enable

bool

No

False

interval

int

No

5

ge=5, le=300

locate

str | None

No

None

min_length=1

status

StatusPluginIconParams

No

factory

trusted

list[str] | None

No

None

min_length=1

channels: Annotated[list[AutoJoinPluginChannelParams], FieldInfo(annotation=NoneType, required=True, description='Which channels to maintain join', metadata=[MinLen(min_length=1)])]#
interval: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Interval when channels are joined', metadata=[Ge(ge=5), Le(le=300)])]#
status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')]#